-
Notifications
You must be signed in to change notification settings - Fork 41.2k
Upgrade to Undertow 1.3 #3969
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
This is currently blocked by a breaking API change that causes a
A work-in-progress branch is available here. |
The code that uses reflection to determine the protocol and port has been updated to align with changes made in Undertow 1.3 See gh-3969
1.3.0.Final has been released. |
I'm getting a similar error with spring-boot 1.3.1.RELEASE. It occurs the first time a WebSocket client tries to establish a connection. 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:352) ~[undertow-core-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.server.protocol.http.HttpServerConnection.exchangeComplete(HttpServerConnection.java:228) ~[undertow-core-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.server.HttpServerExchange.invokeExchangeCompleteListeners(HttpServerExchange.java:1226) ~[undertow-core-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.server.HttpServerExchange.terminateResponse(HttpServerExchange.java:1503) ~[undertow-core-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.server.Connectors.terminateResponse(Connectors.java:99) ~[undertow-core-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.server.protocol.http.HttpTransferEncoding$3.handleEvent(HttpTransferEncoding.java:197) ~[undertow-core-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.server.protocol.http.HttpTransferEncoding$3.handleEvent(HttpTransferEncoding.java:195) ~[undertow-core-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.conduits.HeadStreamSinkConduit.exitFlush(HeadStreamSinkConduit.java:178) ~[undertow-core-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.conduits.HeadStreamSinkConduit.flush(HeadStreamSinkConduit.java:122) ~[undertow-core-1.3.10.Final.jar:1.3.10.Final]
at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162) ~[xnio-api-3.3.3.Final.jar:3.3.3.Final]
at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:119) ~[undertow-core-1.3.10.Final.jar:1.3.10.Final]
at org.xnio.channels.Channels.flushBlocking(Channels.java:63) ~[xnio-api-3.3.3.Final.jar:3.3.3.Final]
at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputStreamImpl.java:609) ~[undertow-servlet-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter(HttpServletResponseImpl.java:476) ~[undertow-servlet-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:560) ~[undertow-servlet-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:331) ~[undertow-servlet-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263) ~[undertow-servlet-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) ~[undertow-servlet-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174) ~[undertow-servlet-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) ~[undertow-core-1.3.10.Final.jar:1.3.10.Final]
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:793) ~[undertow-core-1.3.10.Final.jar:1.3.10.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_51]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_51] |
You are using Spring Framework 4.2.1 with Spring Boot 1.3.1. You should allow Spring Boot's dependency management to control the version of Spring Framework that's used (it should be 4.2.4.RELEASE). |
Thank you for your fast answer. Just another question: I configured my project by declaring spring-boot-starter-parent as parent, then I added spring-cloud-starter-parent in dependencyManagement for configuring spring-cloud dependencies. Is there a better practice to avoid conflict next time I update boot version or I just have to remember to update both of them? |
As chance would have it, we were discussing this today and have a plan in place to improve this. In the meantime, you may find some of the tips in this blog post to be useful. |
Thank you very much for your help.
Paolo Contessi |
1.3.0.CR1 has just been released so it looks like there's a good chance that 1.3.0.Final will be available in time for our 1.3 release
The text was updated successfully, but these errors were encountered: