Ban Management

Ban Management

193k Downloads

SQLException

EvilOlaf opened this issue ยท 17 comments

commented

Spigot 1.8.3
BM 5.5.0
PEX 1.23.2

I have two players in the same user group with the same permissions. One can use warn, the other one could not.
A relog of the affected player solved the problem.

Might be interesting anyways.

[19:44:27] [Server thread/INFO]: [PermissionsEx] User Olaf checked for permission 'bm.command.warn', regex-matched a value of true from cache.
[19:44:27] [Server thread/INFO]: [PermissionsEx] User Olaf checked for permission 'bm.command.warn', regex-matched a value of true from cache.
[19:44:30] [Server thread/INFO]: Olaf issued server command: /warn AnotherUser Test
[19:44:30] [Server thread/INFO]: [PermissionsEx] User Olaf checked for permission 'bm.command.warn', regex-matched a value of true from cache.
[19:44:30] [Server thread/INFO]: [PermissionsEx] User Olaf checked for permission 'bm.exempt.override.warn', no match found (CACHE MISS)
[19:44:30] [Craft Scheduler Thread - 954/WARN]: java.sql.SQLException: Unable to run insert stmt on object me.confuser.banmanager.data.PlayerWarnData@3254bc15: INSERT INTO `bm_player_warnings` (`player_id` ,`reason` ,`actor_id` ,`created` ,`read` ) VALUES (?,?,?,?,?)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at me.confuser.banmanager.internal.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at me.confuser.banmanager.internal.ormlite.stmt.mapped.MappedCreate.insert(MappedCreate.java:135)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at me.confuser.banmanager.internal.ormlite.stmt.StatementExecutor.create(StatementExecutor.java:450)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.create(BaseDaoImpl.java:310)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at me.confuser.banmanager.storage.PlayerWarnStorage.addWarning(PlayerWarnStorage.java:38)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at me.confuser.banmanager.commands.WarnCommand$1.run(WarnCommand.java:126)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftTask.run(CraftTask.java:71)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at java.lang.Thread.run(Thread.java:745)
[19:44:30] [Craft Scheduler Thread - 954/WARN]: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'actor_id' cannot be null
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at com.mysql.jdbc.Util.getInstance(Util.java:382)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1039)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2407)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2325)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2310)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at me.confuser.banmanager.internal.ormlite.jdbc.JdbcDatabaseConnection.insert(JdbcDatabaseConnection.java:170)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         at me.confuser.banmanager.internal.ormlite.stmt.mapped.MappedCreate.insert(MappedCreate.java:91)
[19:44:30] [Craft Scheduler Thread - 954/WARN]:         ... 9 more
commented

The old actor_id is null exception. I still can't narrow down what is causing the interference.

commented

Another one. Not sure if related to this one:

[20:24:08] [Server thread/INFO]: Olaf issued server command: /ban bad_user xray
[20:24:08] [Craft Scheduler Thread - 529/ERROR]: Could not pass event PlayerBanEvent to BanManager v5.5.0
org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:305) ~[spigot-1.8.3.jar:git-Spigot-870264a-0a645a2]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.8.3.jar:git-Spigot-870264a-0a645a2]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.8.3.jar:git-Spigot-870264a-0a645a2]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.8.3.jar:git-Spigot-870264a-0a645a2]
        at me.confuser.banmanager.storage.PlayerBanStorage.ban(PlayerBanStorage.java:104) [BanManager550.jar:?]
        at me.confuser.banmanager.commands.BanCommand$1.run(BanCommand.java:147) [BanManager550.jar:?]
        at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftTask.run(CraftTask.java:71) [spigot-1.8.3.jar:git-Spigot-870264a-0a645a2]
        at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53) [spigot-1.8.3.jar:git-Spigot-870264a-0a645a2]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_45]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_45]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45]
Caused by: java.lang.NullPointerException
        at me.confuser.banmanager.listeners.BanListener.notifyOnBan(BanListener.java:40) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_45]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_45]
        at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_45]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) ~[spigot-1.8.3.jar:git-Spigot-870264a-0a645a2]
        ... 10 more
[20:24:08] [Craft Scheduler Thread - 529/WARN]: java.sql.SQLException: Unable to run insert stmt on object me.confuser.banmanager.data.PlayerBanData@67331249: INSERT INTO `bm_player_bans` (`player_id`
 ,`reason` ,`actor_id` ,`created` ,`updated` ,`expires` ) VALUES (?,?,?,?,?,?)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at me.confuser.banmanager.internal.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at me.confuser.banmanager.internal.ormlite.stmt.mapped.MappedCreate.insert(MappedCreate.java:135)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at me.confuser.banmanager.internal.ormlite.stmt.StatementExecutor.create(StatementExecutor.java:450)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.create(BaseDaoImpl.java:310)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at me.confuser.banmanager.storage.PlayerBanStorage.ban(PlayerBanStorage.java:110)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at me.confuser.banmanager.commands.BanCommand$1.run(BanCommand.java:147)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftTask.run(CraftTask.java:71)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at java.lang.Thread.run(Thread.java:745)
[20:24:08] [Craft Scheduler Thread - 529/WARN]: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'actor_id' cannot be null
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at com.mysql.jdbc.Util.getInstance(Util.java:382)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1039)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2407)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2325)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2310)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at me.confuser.banmanager.internal.ormlite.jdbc.JdbcDatabaseConnection.insert(JdbcDatabaseConnection.java:170)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         at me.confuser.banmanager.internal.ormlite.stmt.mapped.MappedCreate.insert(MappedCreate.java:91)
[20:24:08] [Craft Scheduler Thread - 529/WARN]:         ... 9 more
[20:33:43] [Server thread/INFO]: Olaf issued server command: /unban bad_user
[20:33:43] [Craft Scheduler Thread - 549/WARN]: Exception in thread "Craft Scheduler Thread - 549"
[20:33:43] [Craft Scheduler Thread - 549/WARN]: org.apache.commons.lang.UnhandledException: Plugin BanManager v5.5.0 generated an exception while executing task 1207754
        at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:56)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
        at me.confuser.banmanager.commands.UnbanCommand$1.run(UnbanCommand.java:81)
        at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftTask.run(CraftTask.java:71)
        at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
        ... 3 more
commented

Just had the same issue http://pastebin.com/abaqTrzH
Relog did not fix the issue at first, then the relog seemed to work.

commented

Just a guess but I think this bug may have been introduced in 5.5.0, because till 5.4.1 I never had this issue.

commented

I can put that build on, however since this issue happens very rarely and I can't reproduce it I don't really see how I could report back to you that it doesn't happen anymore.

commented

That's a pretty good argument ...

commented

v5.5.0 didn't make any changes to the join events.

We're not experiencing this on Frostcast which makes me more inclined towards it being another plugin causing this by poorly handling the join events.

I've probably asked you both of this before, but can you both post your plugin lists so I can compare to see if there are any plugins you are both running?

commented

I'm not running anything special: EssentialsX/Spawn/Chat, Groupmanager, NoCheatPlus, Worldguard/edit, Vault, PlugMan, Worldborder, Healthbar, SimpleTag, SignEdit, BetterEnderChest, ChestCommands, OpenInv, BanManager (surprise), ConsoleMesagesFilter, VariableTriggers, HolographicDisplays, Votifier, VanishNoPacket, TitleManager, FactionsUUID.

commented

AsyncWorldEditInjector, dynmap, WorldEdit, VoteRoulette, ChunkSpawnerLimiter, Essentials, TuxTwoLib, BukkitSpeak, ChatControl, AutoMessage, WorldBorder, Modifyworld, Votifier, BanManager, AntiLog, WorldGuard, AsyncWorldEdit, RedstoneClockDetector, iConomy, PermissionsEx, AnimalProtect, mcMMO, ProtectionStones, Vault, EssentialsSpawn, Prism, MyCommand, EnderSpawn, ChestShop, CompatNoCheatPlus, LiftSign, PlotSquared, Dynmap-WorldGuard, Multiverse-Core, OnTime, Plot2Dynmap, ServerSigns, RandomLocation, GameModeInventories, GroupBasedPVP, Scavenger, ProtocolLib, NoCheatPlus, VanishNoPacket, ScoreboardStats, HolographicDisplays

commented

Offtopic, but iConomy? Why would you use that nowadays.

commented

Because it still works like a charm.

commented

I'm pretty sure a reason it was abandoned was the fact that the code was bloated compared to other economy plugins out there, but whatever, if you like it lol.

commented

Can you try http://ci.frostcast.net/job/BanManager/151/ and let me know if it's fixed?

Keep in mind it contains the geoip features, so you'll notice an increase in the jar size.

commented

got same issue and I combined the plugins i have and they both have, and these are the ones we all share in common

Plugins: Essentials, NoCheatPlus, Worldguard, Worldedit, Vault, BanManager, HolographicDisplays, Votifier

commented

actually i got a different error

[21:31:00 WARN]: Exception in thread "Craft Scheduler Thread - 384"
[21:31:00 WARN]: org.apache.commons.lang.UnhandledException: Plugin BanManager v5.5.0 generated an exception while executing task 32
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:56)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.IllegalStateException: Errors getting more results of class me.confuser.banmanager.data.PlayerBanData
at me.confuser.banmanager.internal.ormlite.stmt.SelectIterator.hasNext(SelectIterator.java:103)
at me.confuser.banmanager.runnables.ExpiresSync.run(ExpiresSync.java:39)
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71)
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
... 3 more
Caused by: java.sql.SQLException: Operation not allowed after ResultSet closed
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
at com.mysql.jdbc.ResultSetImpl.checkClosed(ResultSetImpl.java:794)
at com.mysql.jdbc.ResultSetImpl.first(ResultSetImpl.java:1164)
at me.confuser.banmanager.internal.ormlite.jdbc.JdbcDatabaseResults.first(JdbcDatabaseResults.java:58)
at me.confuser.banmanager.internal.ormlite.stmt.SelectIterator.hasNextThrow(SelectIterator.java:79)
at me.confuser.banmanager.internal.ormlite.stmt.SelectIterator.hasNext(SelectIterator.java:98)
... 6 more

commented

It still happens, even on the latest build.
As always, relogging fixes the issue.

This issue is minor for me though, almost never happens and is easy to fix through relog.

commented

It still happen to me too even tho I'm using the dev build 151. Thanks Kakifrucht for telling us about the reloging part as a temp solution.