From 858fcd2a3ae8bcf3f1a405e88341bfb4f5a09554 Mon Sep 17 00:00:00 2001 From: P0nk Date: Sun, 11 Apr 2021 13:05:12 +0200 Subject: [PATCH] Actually perform name changes & world transfers on startup No changes were being committed --- src/main/java/net/server/Server.java | 61 ++++++++++++++++------------ 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/src/main/java/net/server/Server.java b/src/main/java/net/server/Server.java index a8def9df3b..5efb31ad68 100644 --- a/src/main/java/net/server/Server.java +++ b/src/main/java/net/server/Server.java @@ -1575,18 +1575,23 @@ public class Server { PreparedStatement ps = con.prepareStatement("SELECT * FROM namechanges WHERE completionTime IS NULL"); ResultSet rs = ps.executeQuery()) { List> changedNames = new LinkedList<>(); //logging only - while (rs.next()) { - con.setAutoCommit(false); - int nameChangeId = rs.getInt("id"); - int characterId = rs.getInt("characterId"); - String oldName = rs.getString("old"); - String newName = rs.getString("new"); - boolean success = MapleCharacter.doNameChange(con, characterId, oldName, newName, nameChangeId); - if (!success) { - con.rollback(); //discard changes - } else { - changedNames.add(new Pair<>(oldName, newName)); + + con.setAutoCommit(false); + try { + while (rs.next()) { + int nameChangeId = rs.getInt("id"); + int characterId = rs.getInt("characterId"); + String oldName = rs.getString("old"); + String newName = rs.getString("new"); + boolean success = MapleCharacter.doNameChange(con, characterId, oldName, newName, nameChangeId); + if (!success) { + con.rollback(); //discard changes + } else { + con.commit(); + changedNames.add(new Pair<>(oldName, newName)); + } } + } finally { con.setAutoCommit(true); } //log @@ -1625,23 +1630,29 @@ public class Server { } rs.beforeFirst(); List>> worldTransfers = new LinkedList<>(); //logging only > - while (rs.next()) { - con.setAutoCommit(false); - int nameChangeId = rs.getInt("id"); - if (removedTransfers.contains(nameChangeId)) { - continue; - } - int characterId = rs.getInt("characterId"); - int oldWorld = rs.getInt("from"); - int newWorld = rs.getInt("to"); - boolean success = MapleCharacter.doWorldTransfer(con, characterId, oldWorld, newWorld, nameChangeId); - if (!success) { - con.rollback(); - } else { - worldTransfers.add(new Pair<>(characterId, new Pair<>(oldWorld, newWorld))); + + con.setAutoCommit(false); + try { + while (rs.next()) { + int nameChangeId = rs.getInt("id"); + if (removedTransfers.contains(nameChangeId)) { + continue; + } + int characterId = rs.getInt("characterId"); + int oldWorld = rs.getInt("from"); + int newWorld = rs.getInt("to"); + boolean success = MapleCharacter.doWorldTransfer(con, characterId, oldWorld, newWorld, nameChangeId); + if (!success) { + con.rollback(); + } else { + con.commit(); + worldTransfers.add(new Pair<>(characterId, new Pair<>(oldWorld, newWorld))); + } } + } finally { con.setAutoCommit(true); } + //log for (Pair> worldTransferPair : worldTransfers) { int charId = worldTransferPair.getLeft();