Closed Cas7iel closed 11 years ago
This issue should automatically be resolved as soon as we hibernatize all entities.
This happens, for example, when player A have item A in his inventory and stored in the DB, then if player A drops item A and player B pick up item A, and player B is saved before player A, then the item will still exist in The DB on table inventory associated to player A.
This issue should now be fixed on the items branch
INFO network - Player Playername saving...
Result of this Exception is, that the complete inventory will vanish: WARN network - Exception com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '96295' for key 'PRIMARY' at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:532) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.Util.getInstance(Util.java:386) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1039) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2618) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2568) at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:842) at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:681) at org.reunionemu.jreunion.server.DatabaseUtils.saveInventory(DatabaseUtils.java:851) at org.reunionemu.jreunion.game.Player.save(Player.java:786) at org.reunionemu.jreunion.server.LocalMap.handleEvent(LocalMap.java:612) at org.reunionemu.jreunion.events.EventDispatcher.fireEvent(EventDispatcher.java:131) at org.reunionemu.jreunion.events.EventDispatcher.fireEvent(EventDispatcher.java:40) at org.reunionemu.jreunion.game.Player.handleEvent(Player.java:1472) at org.reunionemu.jreunion.events.EventDispatcher.fireEvent(EventDispatcher.java:131) at org.reunionemu.jreunion.events.EventDispatcher.fireEvent(EventDispatcher.java:40) at org.reunionemu.jreunion.server.Client.handleEvent(Client.java:266) at org.reunionemu.jreunion.events.EventDispatcher.fireEvent(EventDispatcher.java:131) at org.reunionemu.jreunion.events.EventDispatcher.fireEvent(EventDispatcher.java:40) at org.reunionemu.jreunion.server.Network.disconnect(Network.java:212) at org.reunionemu.jreunion.server.Network.run(Network.java:112) at java.lang.Thread.run(Thread.java:679) INFO network - Player Playername saving complete!
Result after this Exception is a emtpy or totally bugged Stash: WARN network - Playername: Stash saving failed ... java.lang.NullPointerException at org.reunionemu.jreunion.server.DatabaseUtils.saveStash(DatabaseUtils.java:1281) at org.reunionemu.jreunion.game.Player.save(Player.java:811) at org.reunionemu.jreunion.server.PacketParser.HandleMessage(PacketParser.java:818) at org.reunionemu.jreunion.server.PacketParser.Parse(PacketParser.java:1132) at org.reunionemu.jreunion.server.PacketParser.handleEvent(PacketParser.java:1161) at org.reunionemu.jreunion.events.EventDispatcher.fireEvent(EventDispatcher.java:131) at org.reunionemu.jreunion.events.EventDispatcher.fireEvent(EventDispatcher.java:40) at org.reunionemu.jreunion.server.Client.handleEvent(Client.java:260) at org.reunionemu.jreunion.events.EventDispatcher.fireEvent(EventDispatcher.java:131) at org.reunionemu.jreunion.events.EventDispatcher.fireEvent(EventDispatcher.java:40) at org.reunionemu.jreunion.server.Network.processInput(Network.java:172) at org.reunionemu.jreunion.server.Network.run(Network.java:105) at java.lang.Thread.run(Thread.java:679) INFO network - Player Playername saving complete!
Result after this Exception is a empty or totally bugged Inventory: WARN network - Playername: Inventory saving failed ... java.lang.NullPointerException at org.reunionemu.jreunion.server.DatabaseUtils.saveInventory(DatabaseUtils.java:847) at org.reunionemu.jreunion.game.Player.save(Player.java:786) at org.reunionemu.jreunion.server.PacketParser.HandleMessage(PacketParser.java:818) at org.reunionemu.jreunion.server.PacketParser.Parse(PacketParser.java:1132) at org.reunionemu.jreunion.server.PacketParser.handleEvent(PacketParser.java:1161) at org.reunionemu.jreunion.events.EventDispatcher.fireEvent(EventDispatcher.java:131) at org.reunionemu.jreunion.events.EventDispatcher.fireEvent(EventDispatcher.java:40) at org.reunionemu.jreunion.server.Client.handleEvent(Client.java:260) at org.reunionemu.jreunion.events.EventDispatcher.fireEvent(EventDispatcher.java:131) at org.reunionemu.jreunion.events.EventDispatcher.fireEvent(EventDispatcher.java:40) at org.reunionemu.jreunion.server.Network.processInput(Network.java:172) at org.reunionemu.jreunion.server.Network.run(Network.java:105) at java.lang.Thread.run(Thread.java:679) INFO network - Player Playernamesaving complete!