Build: #1874 was successful Changes by Florian Schmaus <flo@geekplace.eu>
Code commits
Smack (master)
-
Florian Schmaus <flo@geekplace.eu> 6a90300ef693d2d2bd51e1919c49f5e506e96cac
Merge pull request #550 from Flowdalic/break-loop-in-webscoket-disconnect
[websocket-java11] Prevent infinite recursion in disconnect() -
Florian Schmaus <flo@geekplace.eu> 507345ed7a993ae339c9d26ed8e55c6e17c24e33
Merge pull request #549 from Flowdalic/sinttest-uncon-con-source
[sinttest] Add UnconnectedConnectionSource for low-level tests -
Florian Schmaus <flo@geekplace.eu> 324e54b81b5236d047ce071b4823ed54dd7b638f
[websocket-java11] Prevent infinite recursion in disconnect()
Guus reports the following infinite recursing causing a
StackOverflowError:
Exception in thread "main" java.lang.StackOverflowError
at org.jivesoftware.smack.websocket.java11.Java11WebSocket.disconnect(Java11WebSocket.java:142)
at org.jivesoftware.smack.websocket.XmppWebSocketTransportModule$XmppWebSocketTransport.disconnect(XmppWebSocketTransportModule.java:265)
at org.jivesoftware.smack.c2s.ModularXmppClientToServerConnection$CloseConnectionState.transitionInto(ModularXmppClientToServerConnection.java:1086)
at org.jivesoftware.smack.c2s.ModularXmppClientToServerConnection.attemptEnterState(ModularXmppClientToServerConnection.java:472)
at org.jivesoftware.smack.c2s.ModularXmppClientToServerConnection.walkStateGraphInternal(ModularXmppClientToServerConnection.java:399)
at org.jivesoftware.smack.c2s.ModularXmppClientToServerConnection.walkStateGraph(ModularXmppClientToServerConnection.java:339)
at org.jivesoftware.smack.c2s.ModularXmppClientToServerConnection.shutdown(ModularXmppClientToServerConnection.java:551)
at org.jivesoftware.smack.c2s.ModularXmppClientToServerConnection.instantShutdown(ModularXmppClientToServerConnection.java:530)
at org.jivesoftware.smack.AbstractXMPPConnection.notifyConnectionError(AbstractXMPPConnection.java:1024)
at org.jivesoftware.smack.c2s.ModularXmppClientToServerConnection.access$100(ModularXmppClientToServerConnection.java:134)
at org.jivesoftware.smack.c2s.ModularXmppClientToServerConnection$1.notifyConnectionError(ModularXmppClientToServerConnection.java:185)
at org.jivesoftware.smack.websocket.impl.AbstractWebSocket.onWebSocketFailure(AbstractWebSocket.java:128)
at org.jivesoftware.smack.websocket.java11.Java11WebSocket.onWebSocketFailure(Java11WebSocket.java:162)
at org.jivesoftware.smack.websocket.java11.Java11WebSocket.disconnect(Java11WebSocket.java:146)
at org.jivesoftware.smack.websocket.XmppWebSocketTransportModule$XmppWebSocketTransport.disconnect(XmppWebSocketTransportModule.java:265)
at org.jivesoftware.smack.c2s.ModularXmppClientToServerConnection$CloseConnectionState.transitionInto(ModularXmppClientToServerConnection.java:1086)
at org.jivesoftware.smack.c2s.ModularXmppClientToServerConnection.attemptEnterState(ModularXmppClientToServerConnection.java:472)
...
This is because sendClose() in Java11WebSocket.disconnect() throws,
potentially because the output stream is already closed. We previously
would feed the exception into the onWebSocketFailure(Exception)
machinery, which would then again attempt a disconnect.
Since a failed sendClose() is nothing that needs special handling, we
simply log the exception as error. Furthermore, we only issue
sendClose() if the WebSocket's output is still open, i.e., if there is
a chance that it actually works.
Reported-by: Guus der Kinderen <guus@goodbytes.nl> -
Florian Schmaus <flo@geekplace.eu> a2a22883d25c43149fe7641f40dee208e2f5093b
[websocket] Override AbstractWebSocket.toString()
-
Florian Schmaus <flo@geekplace.eu> c5bb15c631d38ba3632c6d70c447de6065974db0
[sinttest] Add UnconnectedConnectionSource for low-level tests
Previously low-level tests where run, potentially multiple times, with
the default connection descriptor.
Reported-by: Guus der Kinderen <guus@goodbytes.nl>- smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/AbstractSmackLowLevelIntegrationTest.java (version c5bb15c631d38ba3632c6d70c447de6065974db0) (diffs)
- smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/SmackIntegrationTestFramework.java (version c5bb15c631d38ba3632c6d70c447de6065974db0) (diffs)
- smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/XmppConnectionManager.java (version c5bb15c631d38ba3632c6d70c447de6065974db0) (diffs)
- smack-integration-test/src/main/java/org/jivesoftware/smack/LoginIntegrationTest.java (version c5bb15c631d38ba3632c6d70c447de6065974db0) (diffs)
- smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/SmackIntegrationTestFrameWorkTest.java (version c5bb15c631d38ba3632c6d70c447de6065974db0) (diffs)