|
Fix Version: |
17.4.2 |
Fix Version: |
17.6.0-rc-1 |
Description: |
h2. 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)]
h2. Expected
No exception. h2. Actual
An exception with the stacktrace below is thrown {noformat} 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) {noformat}
h2. 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 {noformat}websocat -H='Cookie: cookie copied from the browser debugger network tab' ws://localhost: 8082 8080 /xwiki/websocket/xwiki/echo{noformat} |
Priority: |
Major Blocker |
Labels: |
regression |
|