WiIIiam278 / HuskSync

A modern, cross-server player data synchronisation system
https://william278.net/project/husksync
Apache License 2.0
169 stars 130 forks source link

Throws NoClassDefFoundError on mariadb jdbc driver when server shutdown #248

Closed comjun04 closed 7 months ago

comjun04 commented 7 months ago

Sometimes when shutting down the server, HuskSync throws NoClassDefFoundError several times when closing db connections.

[01:14:27] [Server thread/INFO]: [HuskSync] Disabling HuskSync v3.3.3
[01:14:27] [Server thread/INFO]: [net.william278.husksync.libraries.hikari.HikariDataSource] HuskSyncHikariPool - Shutdown initiated...
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Exception in thread "HuskSyncHikariPool connection closer" java.lang.NoClassDefFoundError: org/mariadb/jdbc/message/client/QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.client.impl.StandardClient.close(StandardClient.java:1044)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.Connection.close(Connection.java:243)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.PoolBase.quietlyCloseConnection(PoolBase.java:139)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.HikariPool.lambda$closeConnection$1(HikariPool.java:435)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.lang.Thread.run(Thread.java:1583)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Caused by: java.lang.ClassNotFoundException: org.mariadb.jdbc.message.client.QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     ... 7 more
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Exception in thread "HuskSyncHikariPool connection closer" java.lang.NoClassDefFoundError: org/mariadb/jdbc/message/client/QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.client.impl.StandardClient.close(StandardClient.java:1044)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.Connection.close(Connection.java:243)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.PoolBase.quietlyCloseConnection(PoolBase.java:139)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.HikariPool.lambda$closeConnection$1(HikariPool.java:435)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.lang.Thread.run(Thread.java:1583)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Caused by: java.lang.ClassNotFoundException: org.mariadb.jdbc.message.client.QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     ... 7 more
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Exception in thread "HuskSyncHikariPool connection closer" java.lang.NoClassDefFoundError: org/mariadb/jdbc/message/client/QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.client.impl.StandardClient.close(StandardClient.java:1044)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.Connection.close(Connection.java:243)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.PoolBase.quietlyCloseConnection(PoolBase.java:139)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.HikariPool.lambda$closeConnection$1(HikariPool.java:435)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.lang.Thread.run(Thread.java:1583)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Caused by: java.lang.ClassNotFoundException: org.mariadb.jdbc.message.client.QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     ... 7 more
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Exception in thread "HuskSyncHikariPool connection closer" java.lang.NoClassDefFoundError: org/mariadb/jdbc/message/client/QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.client.impl.StandardClient.close(StandardClient.java:1044)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.Connection.close(Connection.java:243)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.PoolBase.quietlyCloseConnection(PoolBase.java:139)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.HikariPool.lambda$closeConnection$1(HikariPool.java:435)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.lang.Thread.run(Thread.java:1583)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Caused by: java.lang.ClassNotFoundException: org.mariadb.jdbc.message.client.QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     ... 7 more
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Exception in thread "HuskSyncHikariPool connection closer" java.lang.NoClassDefFoundError: org/mariadb/jdbc/message/client/QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.client.impl.StandardClient.close(StandardClient.java:1044)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.Connection.close(Connection.java:243)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.PoolBase.quietlyCloseConnection(PoolBase.java:139)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.HikariPool.lambda$closeConnection$1(HikariPool.java:435)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.lang.Thread.run(Thread.java:1583)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Caused by: java.lang.ClassNotFoundException: org.mariadb.jdbc.message.client.QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     ... 7 more
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Exception in thread "HuskSyncHikariPool connection closer" java.lang.NoClassDefFoundError: org/mariadb/jdbc/message/client/QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.client.impl.StandardClient.close(StandardClient.java:1044)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.Connection.close(Connection.java:243)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.PoolBase.quietlyCloseConnection(PoolBase.java:139)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.HikariPool.lambda$closeConnection$1(HikariPool.java:435)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.lang.Thread.run(Thread.java:1583)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Caused by: java.lang.ClassNotFoundException: org.mariadb.jdbc.message.client.QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     ... 7 more
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Exception in thread "HuskSyncHikariPool connection closer" java.lang.NoClassDefFoundError: org/mariadb/jdbc/message/client/QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.client.impl.StandardClient.close(StandardClient.java:1044)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.Connection.close(Connection.java:243)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.PoolBase.quietlyCloseConnection(PoolBase.java:139)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.HikariPool.lambda$closeConnection$1(HikariPool.java:435)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.lang.Thread.run(Thread.java:1583)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Caused by: java.lang.ClassNotFoundException: org.mariadb.jdbc.message.client.QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     ... 7 more
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Exception in thread "HuskSyncHikariPool connection closer" java.lang.NoClassDefFoundError: org/mariadb/jdbc/message/client/QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.client.impl.StandardClient.close(StandardClient.java:1044)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.Connection.close(Connection.java:243)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.PoolBase.quietlyCloseConnection(PoolBase.java:139)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.HikariPool.lambda$closeConnection$1(HikariPool.java:435)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.lang.Thread.run(Thread.java:1583)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Caused by: java.lang.ClassNotFoundException: org.mariadb.jdbc.message.client.QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     ... 7 more
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Exception in thread "HuskSyncHikariPool connection closer" java.lang.NoClassDefFoundError: org/mariadb/jdbc/message/client/QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.client.impl.StandardClient.close(StandardClient.java:1044)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.Connection.close(Connection.java:243)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.PoolBase.quietlyCloseConnection(PoolBase.java:139)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.HikariPool.lambda$closeConnection$1(HikariPool.java:435)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.lang.Thread.run(Thread.java:1583)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Caused by: java.lang.ClassNotFoundException: org.mariadb.jdbc.message.client.QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     ... 7 more
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Exception in thread "HuskSyncHikariPool connection closer" java.lang.NoClassDefFoundError: org/mariadb/jdbc/message/client/QuitPacket
[01:14:27] [Server thread/INFO]: [net.william278.husksync.libraries.hikari.HikariDataSource] HuskSyncHikariPool - Shutdown completed.
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.client.impl.StandardClient.close(StandardClient.java:1044)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at CustomFishing-2.0.12.2.jar//org.mariadb.jdbc.Connection.close(Connection.java:243)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.PoolBase.quietlyCloseConnection(PoolBase.java:139)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at HuskSync-3.3.3.jar//net.william278.husksync.libraries.hikari.pool.HikariPool.lambda$closeConnection$1(HikariPool.java:435)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     at java.base/java.lang.Thread.run(Thread.java:1583)
[01:14:27] [HuskSyncHikariPool connection closer/WARN]: Caused by: java.lang.ClassNotFoundException: org.mariadb.jdbc.message.client.QuitPacket
[01:14:27] [HuskSyncHikariPool connection closer/WARN]:     ... 7 more
[01:14:27] [husksync:redis_subscriber/INFO]: [HuskSync] Redis unsubscribed from channel 'husksync:::return_user_data'
[01:14:27] [husksync:redis_subscriber/INFO]: [HuskSync] Redis unsubscribed from channel 'husksync:::request_user_data'
[01:14:27] [husksync:redis_subscriber/INFO]: [HuskSync] Redis unsubscribed from channel 'husksync:::update_user_data'
[01:14:27] [Server thread/INFO]: [HuskSync] Successfully disabled HuskSync v3.3.3

And sometimes HuskSync throws exceptions on saving player data on server shutdown, resulting to data loss (data rollback to last successfully saved snapshot) on next startup.

[01:51:47] [Server thread/INFO]: [HuskSync] Disabling HuskSync v3.3.3
[01:51:47] [Server thread/ERROR]: Error occurred (in the plugin loader) while disabling HuskSync v3.3.3 (Is it up to date?)
java.lang.NoClassDefFoundError: org/mariadb/jdbc/codec/NonNullParameter
    at org.mariadb.jdbc.BasePreparedStatement.setBoolean(BasePreparedStatement.java:324) ~[CustomFishing-2.0.12.2.jar:?]
    at net.william278.husksync.libraries.hikari.pool.HikariProxyPreparedStatement.setBoolean(HikariProxyPreparedStatement.java) ~[HuskSync-3.3.3.jar:?]
    at net.william278.husksync.database.MySqlDatabase.createSnapshot(MySqlDatabase.java:382) ~[HuskSync-3.3.3.jar:?]
    at net.william278.husksync.database.Database.addSnapshot(Database.java:179) ~[HuskSync-3.3.3.jar:?]
    at net.william278.husksync.sync.DataSyncer.addSnapshotToDatabase(DataSyncer.java:142) ~[HuskSync-3.3.3.jar:?]
    at net.william278.husksync.sync.DataSyncer.lambda$saveData$0(DataSyncer.java:118) ~[HuskSync-3.3.3.jar:?]
    at net.william278.husksync.event.EventDispatcher.lambda$fireEvent$0(EventDispatcher.java:46) ~[HuskSync-3.3.3.jar:?]
    at net.william278.husksync.util.BukkitTask$Async.run(BukkitTask.java:88) ~[HuskSync-3.3.3.jar:?]
    at net.william278.husksync.util.Task$Supplier.runAsync(Task.java:118) ~[HuskSync-3.3.3.jar:?]
    at net.william278.husksync.event.EventDispatcher.lambda$fireEvent$1(EventDispatcher.java:46) ~[HuskSync-3.3.3.jar:?]
    at net.william278.husksync.util.BukkitTask$Sync.run(BukkitTask.java:53) ~[HuskSync-3.3.3.jar:?]
    at net.william278.husksync.util.Task$Supplier.runSyncDelayed(Task.java:100) ~[HuskSync-3.3.3.jar:?]
    at net.william278.husksync.util.Task$Supplier.runSync(Task.java:112) ~[HuskSync-3.3.3.jar:?]
    at net.william278.husksync.event.EventDispatcher.fireEvent(EventDispatcher.java:44) ~[HuskSync-3.3.3.jar:?]
    at net.william278.husksync.sync.DataSyncer.saveData(DataSyncer.java:116) ~[HuskSync-3.3.3.jar:?]
    at net.william278.husksync.listener.EventListener.lambda$handlePluginDisable$5(EventListener.java:126) ~[HuskSync-3.3.3.jar:?]
    at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[?:?]
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?]
    at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1715) ~[?:?]
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
    at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:?]
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:?]
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
    at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
    at net.william278.husksync.listener.EventListener.handlePluginDisable(EventListener.java:124) ~[HuskSync-3.3.3.jar:?]
    at net.william278.husksync.BukkitHuskSync.onDisable(BukkitHuskSync.java:212) ~[HuskSync-3.3.3.jar:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:283) ~[purpur-api-1.20.1-R0.1-SNAPSHOT.jar:?]
    at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.disablePlugin(PaperPluginInstanceManager.java:224) ~[purpur-1.20.1.jar:git-Purpur-2062]
    at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.disablePlugins(PaperPluginInstanceManager.java:148) ~[purpur-1.20.1.jar:git-Purpur-2062]
    at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.disablePlugins(PaperPluginManagerImpl.java:92) ~[purpur-1.20.1.jar:git-Purpur-2062]
    at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:528) ~[purpur-api-1.20.1-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.craftbukkit.v1_20_R1.CraftServer.disablePlugins(CraftServer.java:587) ~[purpur-1.20.1.jar:git-Purpur-2062]
    at net.minecraft.server.MinecraftServer.stopServer(MinecraftServer.java:955) ~[purpur-1.20.1.jar:git-Purpur-2062]
    at net.minecraft.server.dedicated.DedicatedServer.stopServer(DedicatedServer.java:853) ~[purpur-1.20.1.jar:git-Purpur-2062]
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1236) ~[purpur-1.20.1.jar:git-Purpur-2062]
    at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:322) ~[purpur-1.20.1.jar:git-Purpur-2062]
    at java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.ClassNotFoundException: org.mariadb.jdbc.codec.NonNullParameter
    at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:185) ~[purpur-api-1.20.1-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:152) ~[purpur-api-1.20.1-R0.1-SNAPSHOT.jar:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[?:?]
    ... 38 more

The stacktrace shows that it is related to CustomFishing plugin, so I removed that plugin and tested it. The problem does not occur when CustomFishing is not loaded.

Server version: Purpur 1.20.1 (git-Purpur-2062) Used plugins:

WiIIiam278 commented 7 months ago

This seems to be caused by CustomFishing and isn't something fixable by me unfortunately.

Specifically, CustomFishing is using its own LibraryLoader (based on Lucko's helper) to load runtime dependencies: https://github.com/Xiao-MoMi/Custom-Fishing/blob/main/plugin/src/main/java/net/momirealms/customfishing/libraries/libraryloader/LibraryLoader.java

One of which is the standard MariaDB Java driver: https://github.com/Xiao-MoMi/Custom-Fishing/blob/main/plugin/src/main/java/net/momirealms/customfishing/CustomFishingPluginImpl.java#L219

HuskSync uses Spigot or Paper's built-in MavenLibraryResolver to load this driver: https://github.com/WiIIiam278/HuskSync/blob/master/paper/src/main/java/net/william278/husksync/PaperHuskSyncLoader.java#L43-L53

The way in which CustomFishing is downloading this library is truly bizarre. It seems to be downloading, then - at runtime - relocating the library. This causes a conflict with HuskSync's (correctly) downloaded library through the standard API provided by Paper // the Spigot runtime library resolver.

Please contact the author of CustomFishing to ask them to reevaluate the way their plugin loads libraries - as it isn't compatible with Paper Plugins and the new Paper runtime library loading API. If you need further HuskSync support, open a ticket and get in touch \:)