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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.