Client hangs with blank window, if automatically connecting is on, but server connection is shaky
- Dominant language
- Java
- Stars
- 2.4k
- Forks
- 940
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 160
Description
Similar to #932
XMage version: 1.4.42V6
Check the option to automatically connect to a server when the client starts. When the initial connection is done, disconnect your network connection. Then the client hangs indefinitely:

If the network connection is down completely during start-up, the client recovers and starts normally.
```
INFO 2020-03-26 16:29:25,417 Starting MAGE client version 1.4.42V6 (build: 2020-03-04 17:17) =>[main] MageFrame.main
INFO 2020-03-26 16:29:25,418 Logging level: INFO =>[main] MageFrame.main
INFO 2020-03-26 16:29:26,393 Loading database... =>[AWT-EventQueue-0] RepositoryUtil.bootstrapLocalDb
INFO 2020-03-26 16:29:26,655 Loading symbols... =>[AWT-EventQueue-0] ManaSymbols.loadImages
INFO 2020-03-26 16:29:27,237 Loading plugins... =>[AWT-EventQueue-0] Plugins.loadPlugins
INFO 2020-03-26 16:29:27,255 [Game counter plugin, version 0.1] has been loaded. =>[AWT-EventQueue-0] CounterPluginImpl.newPlugin
INFO 2020-03-26 16:29:27,259 [Card plugin, version 0.7] has been loaded. =>[AWT-EventQueue-0] CardPluginImpl.newPlugin
INFO 2020-03-26 16:29:27,261 [Theme plugin, version 0.5] has been loaded. =>[AWT-EventQueue-0] ThemePluginImpl.newPlugin
INFO 2020-03-26 16:29:27,262 Done. =>[AWT-EventQueue-0] Plugins.loadPlugins
INFO 2020-03-26 16:29:27,885 Client start up time: 2 seconds =>[AWT-EventQueue-0] MageFrame.lambda$new$2
INFO 2020-03-26 16:29:27,886 Auto-connecting to xmage.de =>[AWT-EventQueue-0] MageFrame.autoConnect
INFO 2020-03-26 16:29:27,895 Connect: connecting to server xmage.de:17171 =>[SwingWorker-pool-5-thread-2] SessionImpl$5.work
INFO 2020-03-26 16:29:28,945 Connect: DONE =>[SwingWorker-pool-5-thread-2] SessionImpl$5.work
INFO 2020-03-26 16:29:28,946 Logging: as username luziferius to server xmage.de:17171 =>[SwingWorker-pool-5-thread-3] SessionImpl$4.work
INFO 2020-03-26 16:29:43,417 Connect: lost connection to server. =>[Thread-2514] SessionImpl$ClientConnectionListener.handleConnectionException
java.lang.Exception: Could not connect to server!
at org.jboss.remoting.Client.notifyListeners(Client.java:1886)
at org.jboss.remoting.LeasePinger.stopPing(LeasePinger.java:134)
at org.jboss.remoting.MicroRemoteClientInvoker.terminateLease(MicroRemoteClientInvoker.java:434)
at org.jboss.remoting.ConnectionValidator$WaitOnConnectionCheckTimerTask.run(ConnectionValidator.java:1108)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
FATAL 2020-03-26 16:29:47,543 Connection error: other =>[pool-1-thread-1] SessionImpl.handleThrowable
java.lang.NoClassDefFoundError: org/jboss/mx/util/ObjectNameFactory
at org.jboss.remoting.transporter.InternalTransporterServices.(InternalTransporterServices.java:46)
at org.jboss.remoting.transporter.TransporterClient.findAlternativeTarget(TransporterClient.java:513)
at org.jboss.remoting.transporter.TransporterClient.invoke(TransporterClient.java:484)
at com.sun.proxy.$Proxy8.ping(Unknown Source)
at mage.remote.SessionImpl.ping(SessionImpl.java:1665)
at mage.client.SessionHandler.ping(SessionHandler.java:42)
at mage.client.MageFrame.lambda$new$1(MageFrame.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org.jboss.mx.util.ObjectNameFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 14 more
FATAL 2020-03-26 16:30:07,542 Connection error: other =>[pool-1-thread-1] SessionImpl.handleThrowable
java.lang.NoClassDefFoundError: Could not initialize class org.jboss.remoting.transporter.InternalTransporterServices
at org.jboss.remoting.transporter.TransporterClient.findAlternativeTarget(TransporterClient.java:513)
at org.jboss.remoting.transporter.TransporterClient.invoke(TransporterClient.java:484)
at com.sun.proxy.$Proxy8.ping(Unknown Source)
at mage.remote.SessionImpl.ping(SessionImpl.java:1665)
at mage.client.SessionHandler.ping(SessionHandler.java:42)
at mage.client.MageFrame.lambda$new$1(MageFrame.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
FATAL 2020-03-26 16:30:27,542 Connection error: other =>[pool-1-thread-1] SessionImpl.handleThrowable
java.lang.NoClassDefFoundError: Could not initialize class org.jboss.remoting.transporter.InternalTransporterServices
at org.jboss.remoting.transporter.TransporterClient.findAlternativeTarget(TransporterClient.java:513)
at org.jboss.remoting.transporter.TransporterClient.invoke(TransporterClient.java:484)
at com.sun.proxy.$Proxy8.ping(Unknown Source)
at mage.remote.SessionImpl.ping(SessionImpl.java:1665)
at mage.client.SessionHandler.ping(SessionHandler.java:42)
at mage.client.MageFrame.lambda$new$1(MageFrame.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
FATAL 2020-03-26 16:30:47,542 Connection error: other =>[pool-1-thread-1] SessionImpl.handleThrowable
java.lang.NoClassDefFoundError: Could not initialize class org.jboss.remoting.transporter.InternalTransporterServices
at org.jboss.remoting.transporter.TransporterClient.findAlternativeTarget(TransporterClient.java:513)
at org.jboss.remoting.transporter.TransporterClient.invoke(TransporterClient.java:484)
at com.sun.proxy.$Proxy8.ping(Unknown Source)
at mage.remote.SessionImpl.ping(SessionImpl.java:1665)
at mage.client.SessionHandler.ping(SessionHandler.java:42)
at mage.client.MageFrame.lambda$new$1(MageFrame.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
FATAL 2020-03-26 16:31:07,542 Connection error: other =>[pool-1-thread-1] SessionImpl.handleThrowable
java.lang.NoClassDefFoundError: Could not initialize class org.jboss.remoting.transporter.InternalTransporterServices
at org.jboss.remoting.transporter.TransporterClient.findAlternativeTarget(TransporterClient.java:513)
at org.jboss.remoting.transporter.TransporterClient.invoke(TransporterClient.java:484)
at com.sun.proxy.$Proxy8.ping(Unknown Source)
at mage.remote.SessionImpl.ping(SessionImpl.java:1665)
at mage.client.SessionHandler.ping(SessionHandler.java:42)
at mage.client.MageFrame.lambda$new$1(MageFrame.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
FATAL 2020-03-26 16:31:27,542 Connection error: other =>[pool-1-thread-1] SessionImpl.handleThrowable
java.lang.NoClassDefFoundError: Could not initialize class org.jboss.remoting.transporter.InternalTransporterServices
at org.jboss.remoting.transporter.TransporterClient.findAlternativeTarget(TransporterClient.java:513)
at org.jboss.remoting.transporter.TransporterClient.invoke(TransporterClient.java:484)
at com.sun.proxy.$Proxy8.ping(Unknown Source)
at mage.remote.SessionImpl.ping(SessionImpl.java:1665)
at mage.client.SessionHandler.ping(SessionHandler.java:42)
at mage.client.MageFrame.lambda$new$1(MageFrame.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
FATAL 2020-03-26 16:31:47,542 Connection error: other =>[pool-1-thread-1] SessionImpl.handleThrowable
java.lang.NoClassDefFoundError: Could not initialize class org.jboss.remoting.transporter.InternalTransporterServices
at org.jboss.remoting.transporter.TransporterClient.findAlternativeTarget(TransporterClient.java:513)
at org.jboss.remoting.transporter.TransporterClient.invoke(TransporterClient.java:484)
at com.sun.proxy.$Proxy8.ping(Unknown Source)
at mage.remote.SessionImpl.ping(SessionImpl.java:1665)
at mage.client.SessionHandler.ping(SessionHandler.java:42)
at mage.client.MageFrame.lambda$new$1(MageFrame.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
FATAL 2020-03-26 16:32:07,542 Connection error: other =>[pool-1-thread-1] SessionImpl.handleThrowable
java.lang.NoClassDefFoundError: Could not initialize class org.jboss.remoting.transporter.InternalTransporterServices
at org.jboss.remoting.transporter.TransporterClient.findAlternativeTarget(TransporterClient.java:513)
at org.jboss.remoting.transporter.TransporterClient.invoke(TransporterClient.java:484)
at com.sun.proxy.$Proxy8.ping(Unknown Source)
at mage.remote.SessionImpl.ping(SessionImpl.java:1665)
at mage.client.SessionHandler.ping(SessionHandler.java:42)
at mage.client.MageFrame.lambda$new$1(MageFrame.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
FATAL 2020-03-26 16:32:27,542 Connection error: other =>[pool-1-thread-1] SessionImpl.handleThrowable
java.lang.NoClassDefFoundError: Could not initialize class org.jboss.remoting.transporter.InternalTransporterServices
at org.jboss.remoting.transporter.TransporterClient.findAlternativeTarget(TransporterClient.java:513)
at org.jboss.remoting.transporter.TransporterClient.invoke(TransporterClient.java:484)
at com.sun.proxy.$Proxy8.ping(Unknown Source)
at mage.remote.SessionImpl.ping(SessionImpl.java:1665)
at mage.client.SessionHandler.ping(SessionHandler.java:42)
at mage.client.MageFrame.lambda$new$1(MageFrame.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
FATAL 2020-03-26 16:32:47,542 Connection error: other =>[pool-1-thread-1] SessionImpl.handleThrowable
java.lang.NoClassDefFoundError: Could not initialize class org.jboss.remoting.transporter.InternalTransporterServices
at org.jboss.remoting.transporter.TransporterClient.findAlternativeTarget(TransporterClient.java:513)
at org.jboss.remoting.transporter.TransporterClient.invoke(TransporterClient.java:484)
at com.sun.proxy.$Proxy8.ping(Unknown Source)
at mage.remote.SessionImpl.ping(SessionImpl.java:1665)
at mage.client.SessionHandler.ping(SessionHandler.java:42)
at mage.client.MageFrame.lambda$new$1(MageFrame.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
FATAL 2020-03-26 16:33:07,542 Connection error: other =>[pool-1-thread-1] SessionImpl.handleThrowable
java.lang.NoClassDefFoundError: Could not initialize class org.jboss.remoting.transporter.InternalTransporterServices
at org.jboss.remoting.transporter.TransporterClient.findAlternativeTarget(TransporterClient.java:513)
at org.jboss.remoting.transporter.TransporterClient.invoke(TransporterClient.java:484)
at com.sun.proxy.$Proxy8.ping(Unknown Source)
at mage.remote.SessionImpl.ping(SessionImpl.java:1665)
at mage.client.SessionHandler.ping(SessionHandler.java:42)
at mage.client.MageFrame.lambda$new$1(MageFrame.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
ERROR 2020-03-26 16:33:27,954 Ping failed: luziferius Session: 3j001-eco0ob-k88wx84j-1-k88wx859-4 to MAGE server at xmage.de:17171 =>[pool-1-thread-1] SessionImpl.ping
FATAL 2020-03-26 16:33:27,954 Server error =>[pool-1-thread-1] SessionImpl.handleMageException
mage.MageException: Ping failed
at mage.remote.SessionImpl.ping(SessionImpl.java:1667)
at mage.client.SessionHandler.ping(SessionHandler.java:42)
at mage.client.MageFrame.lambda$new$1(MageFrame.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the auto-connect and ping paths named in the trace: MageFrame.autoConnect, MageFrame.lambda$new$1, SessionHandler.ping, and SessionImpl.ping. Reproduce by enabling automatic connection, connecting successfully, then dropping the network, and inspect how the NoClassDefFoundError for org.jboss.mx.util.ObjectNameFactory is handled. Done means the client does not remain on a blank, hanging window and recovers from this connection failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- desktop, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100