You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Christopher Schultz <ch...@christopherschultz.net> on 2026/06/17 23:44:12 UTC

[VOTE] Release Apache Tomcat 10.1.56

The proposed Apache Tomcat 10.1.56 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.55 are:

- Align the rewrite conditions ornext flag processing with
   mod_rewrite, which follows a purely sequential evaluation
   strategy.

- Ensure that malformed HTTP/2 messages that should trigger a
   stream reset do so, rather than triggered a connection close.

- Add replay protection to the EncryptInterceptor. This is a
   **breaking change** for the EncryptInterceptor. Please see the
   migration document for more information.

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.56/

The Maven staging repo is:
https://repository.apache.org/content/repositories/orgapachetomcat-1595

The tag is:
https://github.com/apache/tomcat/tree/10.1.56
https://github.com/apache/tomcat/commit/59f3f1ab4f905f94c9c99cad579d6afb3a935b66

Please reply with a +1 for release or +0/-0/-1 with an explanation.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[VOTE][RESULT] Release Apache Tomcat 10.1.56

Posted by Christopher Schultz <ch...@christopherschultz.net>.
All,

The following votes were cast:

Binding:
+1: remm, dsoumis, markt, rjung

There were no other votes, therefore the vote passes.

Thanks to everyone who contributed toward this release.

-chris

On 6/17/26 7:44 PM, Christopher Schultz wrote:
> The proposed Apache Tomcat 10.1.56 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.55 are:
> 
> - Align the rewrite conditions ornext flag processing with
>    mod_rewrite, which follows a purely sequential evaluation
>    strategy.
> 
> - Ensure that malformed HTTP/2 messages that should trigger a
>    stream reset do so, rather than triggered a connection close.
> 
> - Add replay protection to the EncryptInterceptor. This is a
>    **breaking change** for the EncryptInterceptor. Please see the
>    migration document for more information.
> 
> 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.56/
> 
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1595
> 
> The tag is:
> https://github.com/apache/tomcat/tree/10.1.56
> https://github.com/apache/tomcat/ 
> commit/59f3f1ab4f905f94c9c99cad579d6afb3a935b66
> 
> Please reply with a +1 for release or +0/-0/-1 with an explanation.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: [VOTE] Release Apache Tomcat 10.1.56

Posted by Dimitris Soumis <ds...@apache.org>.
On Thu, Jun 18, 2026 at 2:54 AM Christopher Schultz <
chris@christopherschultz.net> wrote:

> The proposed Apache Tomcat 10.1.56 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.55 are:
>
> - Align the rewrite conditions ornext flag processing with
>    mod_rewrite, which follows a purely sequential evaluation
>    strategy.
>
> - Ensure that malformed HTTP/2 messages that should trigger a
>    stream reset do so, rather than triggered a connection close.
>
> - Add replay protection to the EncryptInterceptor. This is a
>    **breaking change** for the EncryptInterceptor. Please see the
>    migration document for more information.
>
> 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.56/
>
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1595
>
> The tag is:
> https://github.com/apache/tomcat/tree/10.1.56
>
> https://github.com/apache/tomcat/commit/59f3f1ab4f905f94c9c99cad579d6afb3a935b66
>
> Please reply with a +1 for release or +0/-0/-1 with an explanation.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>
+1

Re: [VOTE] Release Apache Tomcat 10.1.56

Posted by Rainer Jung <ra...@kippdata.de>.
Am 18.06.26 um 01:44 schrieb Christopher Schultz:
> The proposed Apache Tomcat 10.1.56 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.55 are:
> 
> - Align the rewrite conditions ornext flag processing with
>    mod_rewrite, which follows a purely sequential evaluation
>    strategy.
> 
> - Ensure that malformed HTTP/2 messages that should trigger a
>    stream reset do so, rather than triggered a connection close.
> 
> - Add replay protection to the EncryptInterceptor. This is a
>    **breaking change** for the EncryptInterceptor. Please see the
>    migration document for more information.
> 
> 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.56/
> 
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1595
> 
> The tag is:
> https://github.com/apache/tomcat/tree/10.1.56
> https://github.com/apache/tomcat/ 
> commit/59f3f1ab4f905f94c9c99cad579d6afb3a935b66
> 
> Please reply with a +1 for release or +0/-0/-1 with an explanation.

+1 to release.

Reproducibility of the build checked (including the Windows installer) 
using "ant verify-release" on Linux Mint 22.3. OK after setting LANG.

Original Windows installer signature verified with osslsigncode 2.10.

Unit tests ran on platforms

- RHEL 7, 8, 9 and 10 and SLES 12 and 15

using

- recent patch versions of JDK 17, 21, 25, 26 and 27+28 (EA)
   - first time also tested with JDK 28 EA

from

- Eclipse Adoptium, Azul Zulu, Amazon Coretto, Oracle, RedHat and from 
OpenJDK for 27

where available.

Also tested with

- tcnative 1.3.8, 2.0.15 and panama

based on

- OpenSSL 3.0.21, 3.5.7, 3.6.3 and 4.0.1 (4.x only for tcnative 2 and 
panama)

Test observations:

   - not all test runs are done yet, but by far most of them. Only 
JDK27+28 and some JDK26 combinations still need to run on RHEL.

   - IMHO nothing critical

   - one hanging test for JDK 21 in RHEL 7
     Two JUnit child processes. I do have thread dumps,
     for the stack of the main thread see below

   - 15 times SocketException in 
org.apache.tomcat.util.net.TestSslHandshakeFailure
     always with tcnative, reason SocketException.
     Should already be fixed.

   - TestOcspSoftFailTryLater 6 failures with JDK 17+ and jsse

   - in addition
     - a few crashes with tcnative (11 in 856 runs)
     - one crash with jsse (123 runs)
     - very few failures with jsse (4 in 123 runs)
     - very few non-crash-failures with tcnative (2 in 856 runs)

Thanks for RM!

Best regards,

Rainer

Hanging Test
::::::::::::

It hang only once, not reproducible.

"main" #1 [2542] prio=5 os_prio=0 cpu=694.46ms elapsed=104352.86s 
tid=0x00007f5ec402d490 nid=2542 runnable  [0x00007f5ecbe96000]
    java.lang.Thread.State: RUNNABLE
         at 
sun.nio.ch.UnixFileDispatcherImpl.lock0(java.base@21.0.11/Native Method)
         at 
sun.nio.ch.UnixFileDispatcherImpl.lock(java.base@21.0.11/UnixFileDispatcherImpl.java:99)
         at 
sun.nio.ch.FileChannelImpl.lock(java.base@21.0.11/FileChannelImpl.java:1482)
         at 
java.nio.channels.FileChannel.lock(java.base@21.0.11/FileChannel.java:1240)
         at 
org.apache.tomcat.util.net.ocsp.OcspBaseTest.obtainOcspResponderLock(OcspBaseTest.java:54)
         at 
java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.base@21.0.11/DirectMethodHandle$Holder)
         at 
java.lang.invoke.LambdaForm$MH/0x00007f5e50024800.invoke(java.base@21.0.11/LambdaForm$MH)
         at 
java.lang.invoke.Invokers$Holder.invokeExact_MT(java.base@21.0.11/Invokers$Holder)
         at 
jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.base@21.0.11/DirectMethodHandleAccessor.java:153)
         at 
jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.base@21.0.11/DirectMethodHandleAccessor.java:103)
         at 
java.lang.reflect.Method.invoke(java.base@21.0.11/Method.java:580)
         at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
         at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
         at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
         at 
org.junit.internal.runners.statements.RunBefores.invokeMethod(RunBefores.java:33)
         at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
         at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
         at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
         at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
         at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:50)
         at 
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:535)
         at 
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1197)
         at 
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1042)


and another process

"main" #1 [2473] prio=5 os_prio=0 cpu=9739.02ms elapsed=104354.63s 
tid=0x00007fdbc002d490 nid=2473 runnable  [0x00007fdbc95c3000]
    java.lang.Thread.State: RUNNABLE
         at org.apache.tomcat.jni.Library.terminate(Native Method)
         at 
org.apache.catalina.core.AprLifecycleListener.terminateAPR(AprLifecycleListener.java:318)
         at 
org.apache.catalina.core.AprLifecycleListener.lifecycleEvent(AprLifecycleListener.java:298)
         at 
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:115)
         at 
org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:395)
         - locked <0x00000000c5d742e8> (a 
org.apache.catalina.core.StandardServer)
         at 
org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305)
         - locked <0x00000000c5d742e8> (a 
org.apache.catalina.core.StandardServer)
         at org.apache.catalina.startup.Tomcat.destroy(Tomcat.java:474)
         at 
org.apache.catalina.startup.TomcatBaseTest.tearDown(TomcatBaseTest.java:253)
         at 
java.lang.invoke.LambdaForm$DMH/0x00007fdb4c094400.invokeVirtual(java.base@21.0.11/LambdaForm$DMH)
         at 
java.lang.invoke.LambdaForm$MH/0x00007fdb4c13dc00.invoke(java.base@21.0.11/LambdaForm$MH)
         at 
java.lang.invoke.Invokers$Holder.invokeExact_MT(java.base@21.0.11/Invokers$Holder)
         at 
jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.base@21.0.11/DirectMethodHandleAccessor.java:153)
         at 
jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.base@21.0.11/DirectMethodHandleAccessor.java:103)
         at 
java.lang.reflect.Method.invoke(java.base@21.0.11/Method.java:580)
         at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
         at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
         at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
         at 
org.junit.internal.runners.statements.RunAfters.invokeMethod(RunAfters.java:46)
         at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
         at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
         at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
         at 
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
         at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
         at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
         at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
         at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
         at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
         at 
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
         at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
         at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
         at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
         at org.junit.runners.Suite.runChild(Suite.java:128)
         at org.junit.runners.Suite.runChild(Suite.java:27)
         at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
         at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
         at 
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
         at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
         at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
         at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
         at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
         at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
         at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
         at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:50)
         at 
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:535)
         at 
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1197)
         at 
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1042)


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: [VOTE] Release Apache Tomcat 10.1.56

Posted by Rémy Maucherat <re...@apache.org>.
On Thu, Jun 18, 2026 at 1:45 AM Christopher Schultz
<ch...@christopherschultz.net> wrote:
>
> The proposed Apache Tomcat 10.1.56 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.55 are:
>
> - Align the rewrite conditions ornext flag processing with
>    mod_rewrite, which follows a purely sequential evaluation
>    strategy.
>
> - Ensure that malformed HTTP/2 messages that should trigger a
>    stream reset do so, rather than triggered a connection close.
>
> - Add replay protection to the EncryptInterceptor. This is a
>    **breaking change** for the EncryptInterceptor. Please see the
>    migration document for more information.
>
> 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.56/
>
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1595
>
> The tag is:
> https://github.com/apache/tomcat/tree/10.1.56
> https://github.com/apache/tomcat/commit/59f3f1ab4f905f94c9c99cad579d6afb3a935b66
>
> Please reply with a +1 for release or +0/-0/-1 with an explanation.

+1

Rémy

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: [VOTE] Release Apache Tomcat 10.1.56

Posted by Mark Thomas <ma...@apache.org>.
On 18/06/2026 00:44, Christopher Schultz wrote:

> Please reply with a +1 for release or +0/-0/-1 with an explanation.

+1

Test pass on:

Linux with OpenSSL 3.0.13 (Ubuntu 24.04 LTS latest) and Tomcat Native 2.0.15

MacOS with OpenSSL 3.6.2 (Homebrew latest) and Tomcat Native 2.0.15

Windows with Tomcat Native 2.0.15 (includes OpenSSL 3.5.7)

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org