From 350b41391a55030d892c03dcdeaed2b7c56be238 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Fri, 13 Sep 2024 14:54:44 +0400 Subject: [PATCH] connection: added error message for failed connection on wrongly configured server (related to #12768, #6197) --- .../src/main/java/mage/remote/SessionImpl.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Mage.Common/src/main/java/mage/remote/SessionImpl.java b/Mage.Common/src/main/java/mage/remote/SessionImpl.java index c1ed457c5d2..1a777ed2355 100644 --- a/Mage.Common/src/main/java/mage/remote/SessionImpl.java +++ b/Mage.Common/src/main/java/mage/remote/SessionImpl.java @@ -505,6 +505,7 @@ public class SessionImpl implements Session { } if (t.toString().contains("to make private")) { // example: Unable to make private void java.io.ObjectOutputStream.clear() accessible: module java.base does not "opens java.io" to unnamed module + // TODO: show that error as error dialog, so users can report to github message = "Wrong java version - check your client running scripts and params." + message; break; } @@ -512,6 +513,17 @@ public class SessionImpl implements Session { message = '\n' + t.getCause().getMessage() + message; logger.debug(t.getCause().getMessage()); } + + if (t.getCause() == null) { + // last chance to find real reason + if (Arrays.stream(t.getStackTrace()).anyMatch(stack -> Objects.equals("ObjectInputStream.java", stack.getFileName()))) { + // how-to fix: non-standard java version require additional params, see https://github.com/magefree/mage/issues/12768 + // TODO: show that error as error dialog, so users can report to github + message = "Wrong client-server protocol - report to server's admin about compatibility problems. " + message; + break; + } + } + t = t.getCause(); } client.showMessage("Unable connect to server. " + message);