diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java index d427f28e951..660cd8608d4 100644 --- a/Mage.Client/src/main/java/mage/client/MageFrame.java +++ b/Mage.Client/src/main/java/mage/client/MageFrame.java @@ -1224,7 +1224,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { } @Override - public void disconnected() { + public void disconnected(final boolean errorCall) { if (SwingUtilities.isEventDispatchThread()) { setStatusText("Not connected"); disableButtons(); @@ -1238,13 +1238,10 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { disableButtons(); hideGames(); hideTables(); - if (JOptionPane.showConfirmDialog(MageFrame.this, "The connection to server was lost. Reconnect?", "Warning", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { - // session.disconnect(false); - // tablesPane.clearChat(); + if (errorCall && JOptionPane.showConfirmDialog(MageFrame.this, "The connection to server was lost. Reconnect?", "Warning", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { if (performConnect()) { enableButtons(); } -// } else { } } }); diff --git a/Mage.Client/src/test/java/mage/client/game/MultiConnectTest.java b/Mage.Client/src/test/java/mage/client/game/MultiConnectTest.java index 2a815d702f7..fb5a82c46b6 100644 --- a/Mage.Client/src/test/java/mage/client/game/MultiConnectTest.java +++ b/Mage.Client/src/test/java/mage/client/game/MultiConnectTest.java @@ -70,7 +70,7 @@ public class MultiConnectTest { } @Override - public void disconnected() { + public void disconnected(boolean errorCall) { logger.info("disconnected"); } @@ -106,11 +106,13 @@ public class MultiConnectTest { private void connect(final int index) throws Exception { Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { + @Override public void uncaughtException(Thread t, Throwable e) { logger.fatal(null, e); } }); SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { String username = "player" + index; ClientMock client = new ClientMock(username); diff --git a/Mage.Common/src/mage/interfaces/MageClient.java b/Mage.Common/src/mage/interfaces/MageClient.java index 5458616b9e3..0f2fc230117 100644 --- a/Mage.Common/src/mage/interfaces/MageClient.java +++ b/Mage.Common/src/mage/interfaces/MageClient.java @@ -39,7 +39,7 @@ public interface MageClient extends CallbackClient { MageVersion getVersion(); void connected(String message); - void disconnected(); + void disconnected(boolean errorCall); void showMessage(String message); void showError(String message); diff --git a/Mage.Common/src/mage/remote/SessionImpl.java b/Mage.Common/src/mage/remote/SessionImpl.java index b8399bc2b19..4db25fd1382 100644 --- a/Mage.Common/src/mage/remote/SessionImpl.java +++ b/Mage.Common/src/mage/remote/SessionImpl.java @@ -34,6 +34,7 @@ import java.net.MalformedURLException; import java.net.PasswordAuthentication; import java.net.SocketException; import java.net.SocketTimeoutException; +import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.LinkedList; @@ -310,7 +311,12 @@ public class SessionImpl implements Session { logger.fatal("Unable to connect to server - ", t); if (!canceled) { disconnect(false); - client.showMessage("Unable to connect to server. " + t.getMessage()); + StringBuilder sb = new StringBuilder(); + sb.append("Unable to connect to server.\n"); + for (StackTraceElement element :t.getStackTrace()) { + sb.append(element.toString()).append("\n"); + } + client.showMessage(sb.toString()); } } return false; @@ -368,7 +374,7 @@ public class SessionImpl implements Session { if (sessionState == SessionState.DISCONNECTING || sessionState == SessionState.CONNECTING) { sessionState = SessionState.DISCONNECTED; logger.info("Disconnected ... "); - client.disconnected(); + client.disconnected(errorCall); if (errorCall) { client.showError("Network error. You have been disconnected"); } diff --git a/Mage.Server.Console/src/main/java/mage/server/console/ConsoleFrame.java b/Mage.Server.Console/src/main/java/mage/server/console/ConsoleFrame.java index b60cc6e62c3..bcb83d536e5 100644 --- a/Mage.Server.Console/src/main/java/mage/server/console/ConsoleFrame.java +++ b/Mage.Server.Console/src/main/java/mage/server/console/ConsoleFrame.java @@ -263,7 +263,7 @@ public class ConsoleFrame extends javax.swing.JFrame implements MageClient { } @Override - public void disconnected() { + public void disconnected(boolean errorCall) { if (SwingUtilities.isEventDispatchThread()) { consolePanel1.stop(); setStatusText("Not connected"); diff --git a/Mage.Tests/src/test/java/org/mage/test/load/SimpleMageClient.java b/Mage.Tests/src/test/java/org/mage/test/load/SimpleMageClient.java index 9849eaa987a..448ba279224 100644 --- a/Mage.Tests/src/test/java/org/mage/test/load/SimpleMageClient.java +++ b/Mage.Tests/src/test/java/org/mage/test/load/SimpleMageClient.java @@ -38,7 +38,7 @@ public class SimpleMageClient implements MageClient { } @Override - public void disconnected() { + public void disconnected(boolean errorCall) { // do nothing }