Closed
Description
Andy Wilkinson opened SPR-13494 and commented
The return type of HttpServerExchange
has changed which leads to a NoSuchMethodError
when running Spring Framework 4.2.1 against Undertow 1.3:
java.lang.NoSuchMethodError: io.undertow.servlet.websockets.ServletWebSocketHttpExchange.getBufferPool()Lorg/xnio/Pool;
at org.springframework.web.socket.server.standard.UndertowRequestUpgradeStrategy$1.handleUpgrade(UndertowRequestUpgradeStrategy.java:152) ~[spring-websocket-4.2.1.RELEASE.jar:4.2.1.RELEASE]
at io.undertow.server.protocol.http.HttpReadListener.exchangeComplete(HttpReadListener.java:350) ~[undertow-core-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.server.protocol.http.HttpServerConnection.exchangeComplete(HttpServerConnection.java:225) ~[undertow-core-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.server.HttpServerExchange.invokeExchangeCompleteListeners(HttpServerExchange.java:1202) ~[undertow-core-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.server.HttpServerExchange.terminateResponse(HttpServerExchange.java:1479) ~[undertow-core-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.server.Connectors.terminateResponse(Connectors.java:99) ~[undertow-core-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.server.protocol.http.HttpTransferEncoding$3.handleEvent(HttpTransferEncoding.java:197) ~[undertow-core-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.server.protocol.http.HttpTransferEncoding$3.handleEvent(HttpTransferEncoding.java:195) ~[undertow-core-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.conduits.HeadStreamSinkConduit.exitFlush(HeadStreamSinkConduit.java:178) ~[undertow-core-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.conduits.HeadStreamSinkConduit.flush(HeadStreamSinkConduit.java:122) ~[undertow-core-1.3.0.CR2.jar:1.3.0.CR2]
at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162) ~[xnio-api-3.3.2.Final.jar:3.3.2.Final]
at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:119) ~[undertow-core-1.3.0.CR2.jar:1.3.0.CR2]
at org.xnio.channels.Channels.flushBlocking(Channels.java:63) ~[xnio-api-3.3.2.Final.jar:3.3.2.Final]
at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputStreamImpl.java:609) ~[undertow-servlet-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter(HttpServletResponseImpl.java:473) ~[undertow-servlet-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:557) ~[undertow-servlet-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:331) ~[undertow-servlet-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263) ~[undertow-servlet-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) ~[undertow-servlet-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174) ~[undertow-servlet-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:198) ~[undertow-core-1.3.0.CR2.jar:1.3.0.CR2]
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:784) ~[undertow-core-1.3.0.CR2.jar:1.3.0.CR2]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0]
at java.lang.Thread.run(Thread.java:744) ~[na:1.8.0]
A fix for this in 4.2.2 would be most welcome as we'd like to use Undertow 1.3 in Boot 1.3.
Affects: 4.2.1
Issue Links:
- Support for Undertow 1.1 / WildFly 8.2 [SPR-12302] #16836 Support for Undertow 1.1 / WildFly 8.2
- Make UndertowXhrTransport compatible with Undertow 1.3 [SPR-13366] #17950 Make UndertowXhrTransport compatible with Undertow 1.3
- Modifications to UndertowXhrTransport for Undertow 1.3 introduce breaking changes [SPR-13551] #18127 Modifications to UndertowXhrTransport for Undertow 1.3 introduce breaking changes
Referenced from: commits 1458c7e