Details
-
Bug
-
Resolution: Unresolved
-
Blocker
-
17.0.0-rc-1
-
Unknown
-
Description
Reproductions steps
- connect to the dynamic echo websocket (see websockat example below)
- observe the exception in XWikiEndpoint dispatcher (here https://github.com/xwiki/xwiki-commons/blob/209da6a9c1f59673c08b51b7e89cdc98e468eb8f/xwiki-commons-core/xwiki-commons-websocket/src/main/java/org/xwiki/websocket/internal/XWikiEndpointDispatcher.java#L91)
Expected
No exception.
Actual
An exception with the stacktrace below is thrown
java.lang.IllegalStateException: Unable to find Decoder for type: interface jakarta.websocket.MessageHandler$Whole at org.eclipse.jetty.ee10.websocket.jakarta.common.JakartaWebSocketFrameHandler.addMessageHandler(JakartaWebSocketFrameHandler.java:413) at org.eclipse.jetty.ee10.websocket.jakarta.common.JakartaWebSocketSession.addMessageHandler(JakartaWebSocketSession.java:130) at org.eclipse.jetty.ee10.websocket.jakarta.common.JakartaWebSocketSession.addMessageHandler(JakartaWebSocketSession.java:150) at org.xwiki.websocket.internal.DynamicEchoEndpoint.lambda$onOpen$1(DynamicEchoEndpoint.java:61) at org.xwiki.websocket.internal.DefaultWebSocketContext.run(DefaultWebSocketContext.java:96) at org.xwiki.websocket.internal.DynamicEchoEndpoint.onOpen(DynamicEchoEndpoint.java:56) at org.xwiki.websocket.internal.XWikiEndpointDispatcher.onOpen(XWikiEndpointDispatcher.java:83) at org.eclipse.jetty.ee10.websocket.jakarta.common.JakartaWebSocketFrameHandler.onOpen(JakartaWebSocketFrameHandler.java:175) at org.eclipse.jetty.websocket.core.WebSocketCoreSession.lambda$onOpen$6(WebSocketCoreSession.java:402) at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1524) at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1511) at org.eclipse.jetty.websocket.core.server.internal.AbstractHandshaker$1.handle(AbstractHandshaker.java:179) at org.eclipse.jetty.websocket.core.WebSocketCoreSession.onOpen(WebSocketCoreSession.java:402) at org.eclipse.jetty.websocket.core.WebSocketConnection.onOpen(WebSocketConnection.java:532) at org.eclipse.jetty.io.AbstractEndPoint.upgrade(AbstractEndPoint.java:435) at org.eclipse.jetty.server.internal.HttpConnection$HttpStreamOverHTTP1.succeeded(HttpConnection.java:1550) at org.eclipse.jetty.server.HttpStream$Wrapper.succeeded(HttpStream.java:227) at org.eclipse.jetty.server.internal.CompletionStreamWrapper.succeeded(CompletionStreamWrapper.java:45) at org.eclipse.jetty.server.HttpStream$Wrapper.succeeded(HttpStream.java:227) at org.eclipse.jetty.session.AbstractSessionManager$SessionStreamWrapper.succeeded(AbstractSessionManager.java:1499) at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.completeStream(HttpChannelState.java:787) at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:713) at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:416) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99) at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:480) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:443) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:311) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:981) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1211) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1166) at java.base/java.lang.Thread.run(Thread.java:840)
Websocat example
Note:
- https://github.com/vi/websocat
- the cookie must be from a logged-in user, basic auth and cookies from a guest users are not working
websocat -H='Cookie: cookie copied from the browser debugger network tab' ws://localhost:8080/xwiki/websocket/xwiki/echo
Attachments
Issue Links
- is caused by
-
XWIKI-22775 Upgrade to Websocket 2.0.0
-
- Closed
-