Re: [VOTE] Release Apache Tomcat 10.1.58
Rainer Jung <[email protected]>
| Newsgroups | gmane.comp.jakarta.tomcat.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Chris an all,
Am 13.08.26 um 14:29 schrieb Christopher Schultz:
> The proposed Apache Tomcat 10.1.58 release is now available for
> voting.
>
> All committers and PMC members are kindly requested to provide a vote if
> possible. ANY TOMCAT USER MAY VOTE, though only PMC members votes are
> binding. We welcome non-committer votes or comments on release builds.
>
> The notable changes compared to 10.1.57 are:
>
> - Add a new attribute to the Context, urlPatternsProvidedInDecodedForm.
> This attribute controls whether URLs and URL patterns provided in the
> deployment descriptor (web.xml), annotations and/or their programmatic
> equivalents are treated as being provided in URL-encoded form (i.e.
> using %nn encoding) or in decoded form. The Servlet specification
> requires that they are provided in decoded form. However, Tomcat has
> historically treated them as if they are provided in encoded form. In
> Tomcat 12, they will always be treated as if they are provided in
> decoded form. This setting enables migration from encoded form to
> decoded form on an application by application basis. This attribute
> will be removed in Tomcat 12 where it will effectively be hard-coded
> to true.
>
> - Require every HTTP/2 request to provide an authority (either an
> :authority pseudo header or a Host header).
>
> - Change the default encryptionAlgorithm for the EncryptInterceptor to
> AES/GCM/NoPadding. **This is a breaking change for the
> EncryptInterceptor.**
>
> For full details, see the change log:
> https://nightlies.apache.org/tomcat/tomcat-10.1.x/docs/changelog.html
>
> Applications that run on Tomcat 9 and earlier will not run on Tomcat 10
> without changes. Java EE applications designed for Tomcat 9 and earlier
> may be placed in the $CATALINA_BASE/webapps-javaee directory and Tomcat
> will automatically convert them to Jakarta EE and copy them to the
> webapps directory.
>
> It can be obtained from:
> https://dist.apache.org/repos/dist/dev/tomcat/tomcat-10/v10.1.58/
>
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1602
>
> The tag is:
> https://github.com/apache/tomcat/tree/10.1.58
> https://github.com/apache/tomcat/
> commit/96f28aed7efb331abb67b55319072e9de3240e6f
>
> Please reply with a +1 for release or +0/-0/-1 with an explanation.
just a quick heads-up: I see test failures on Java 11 in
TestAsyncContextImpl (NIO and NIO2). I did not see them for TC 9 and 11.
Example:
Testcase: testAsyncRequestURI_25 took 2.2 sec
Caused an ERROR
Unexpected end of file from server
java.net.SocketException: Unexpected end of file from server
at
java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:917)
at
java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:724)
at
java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:914)
at
java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:724)
at
java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1654)
at
java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1559)
at
java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
at
org.apache.catalina.startup.TomcatBaseTest.methodUrl(TomcatBaseTest.java:706)
at
org.apache.catalina.startup.TomcatBaseTest.methodUrl(TomcatBaseTest.java:679)
at
org.apache.catalina.startup.TomcatBaseTest.getUrl(TomcatBaseTest.java:673)
at
org.apache.catalina.startup.TomcatBaseTest.getUrl(TomcatBaseTest.java:667)
at
org.apache.catalina.startup.TomcatBaseTest.getUrl(TomcatBaseTest.java:652)
at
org.apache.catalina.startup.TomcatBaseTest.getUrl(TomcatBaseTest.java:646)
at
org.apache.catalina.core.TestAsyncContextImpl.doTestAsyncRequestURI(TestAsyncContextImpl.java:2238)
at
org.apache.catalina.core.TestAsyncContextImpl.testAsyncRequestURI_25(TestAsyncContextImpl.java:2220)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
and in the test logs:
13-Aug-2026 18:12:38.029 SEVERE [http-nio2-127.0.0.1-auto-61-exec-1]
org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service()
for servlet [bug57559] in context with path [] threw exception
java.lang.IllegalArgumentException: Failed to decode
[/foo/%/bar] because the % character must be followed by two hexadecimal
digits
at
org.apache.tomcat.util.buf.UDecoder.URLDecode(UDecoder.java:344)
at
org.apache.catalina.core.ApplicationContext.getRequestDispatcher(ApplicationContext.java:380)
at
org.apache.catalina.core.ApplicationContextFacade.getRequestDispatcher(ApplicationContextFacade.java:213)
at
org.apache.catalina.core.AsyncContextImpl.dispatch(AsyncContextImpl.java:278)
at
org.apache.catalina.core.AsyncContextImpl.dispatch(AsyncContextImpl.java:257)
at
org.apache.catalina.core.AsyncContextImpl.dispatch(AsyncContextImpl.java:249)
at
org.apache.catalina.core.TestAsyncContextImpl$AsyncRequestUriServlet.doGet(TestAsyncContextImpl.java:2255)
...
13-Aug-2026 18:12:38.040 SEVERE [http-nio2-127.0.0.1-auto-61-exec-1]
org.apache.coyote.AbstractProtocol$ConnectionHandler.process Error
reading request, ignored
java.lang.IllegalStateException: Calling [asyncPostProcess()]
is not valid for a request with Async state [MUST_ERROR]
at
org.apache.coyote.AsyncStateMachine.asyncPostProcess(AsyncStateMachine.java:302)
at
org.apache.coyote.AbstractProcessor.asyncPostProcess(AbstractProcessor.java:224)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:91)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1307)
at
org.apache.tomcat.util.net.Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1676)
...
13-Aug-2026 18:12:38.049 INFO [http-nio2-127.0.0.1-auto-61-exec-1]
org.apache.catalina.connector.CoyoteAdapter.checkRecycled Encountered a
non-recycled request and recycled it forcedly.
org.apache.catalina.connector.CoyoteAdapter$RecycleRequiredException
at
org.apache.catalina.connector.CoyoteAdapter.checkRecycled(CoyoteAdapter.java:526)
at
org.apache.coyote.http11.Http11Processor.recycle(Http11Processor.java:1462)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.release(AbstractProtocol.java:1515)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1459)
at
org.apache.tomcat.util.net.Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1676)
...
and then a few milliseconds later the same three exceptions again.
Best regards,
Rainer