Re: [VOTE] Release Apache Tomcat 10.1.58

Rainer Jung <[email protected]>
Newsgroups gmane.comp.jakarta.tomcat.devel
Message-ID <[email protected]>
Oups, already reported. Sorry for the noise.

Am 13.08.26 um 18:45 schrieb Rainer Jung:
> 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.