I fixed the simple one (TestDataSourceUserDatabase).

Concerning TestWithoutClustering: I verified, that the class package for StoreRegistry is null in the static initializer. The class gets loaded by the custom class loader StoreConfigIsolatingClassLoader in TestWithoutClustering, but I couldn't see anything obviously wrong with it.

Problem is still there, but as said, only with Java 8 (501 / 502; not tested with older patch levels).

Best regards,

Rainer

Am 13.08.26 um 04:30 schrieb Rainer Jung:
One adddition inline

Am 13.08.26 um 04:28 schrieb Rainer Jung:
Hmmm, I see two test failures.

The first one IMHO not a show-stopper, just a missing Assume in the new test:

org.apache.catalina.users.TestDataSourceUserDatabase

Testcase: testMinimalUserRoleDatabase took 0.265 sec
         Caused an ERROR
org/apache/derby/jdbc/EmbeddedDriver has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0 java.lang.UnsupportedClassVersionError: org/apache/derby/jdbc/ EmbeddedDriver has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
         at java.lang.ClassLoader.defineClass1(Native Method)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
         at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
         at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:264)
         at org.apache.catalina.users.TestDataSourceUserDatabase$DerbyUserDatabase.open(TestDataSourceUserDatabase.java:109)          at org.apache.catalina.users.TestDataSourceUserDatabase.testMinimalUserRoleDatabase(TestDataSourceUserDatabase.java:130)


Derby 16 is listed on their download page to support Java 17+. All other Derby tests assume java 16:

         Assume.assumeTrue(JreCompat.isJre16Available());

but testMinimalUserRoleDatabase() added on Jul 10 in 287f203bab1b6d43618bdb7b14654f6f7d276220 doesn't have it.


About the second one, I am not so sure:

org.apache.catalina.startup.TestWithoutClustering

Curently my test farm is still working on Java 8. So this might be Java 8 specific, and it is the latest patch level of it. Will know more later today.

Testcase: testStoreRegistryWithoutClustering took 0.029 sec
         Caused an ERROR
null
java.lang.ExceptionInInitializerError
         at java.lang.reflect.Constructor.newInstance(Constructor.java:423)          at org.apache.catalina.startup.TestWithoutClustering.testStoreRegistryWithoutClustering(TestWithoutClustering.java:313)
Caused by: java.lang.NullPointerException
         at org.apache.tomcat.util.res.StringManager.getManager(StringManager.java:186)          at org.apache.catalina.storeconfig.StoreRegistry.<clinit>(StoreRegistry.java:50)

There seems to be no relevant change around StoreRegistry or StringManager and the pattern seems to be used the same way in many places. If seems the class StoreRegistry is incomplete during its static initializers and getPackage() may return null, but why didn't I see this anywhere before?

Probably also not a showstopper, because StoreConfig is likely not used a lot.

Best regards,

Rainer

Am 12.08.26 um 22:08 schrieb Rémy Maucherat:
The proposed Apache Tomcat 9.0.121 release is now available for voting.

The notable changes compared to 9.0.120 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 changelog:
https://nightlies.apache.org/tomcat/tomcat-9.0.x/docs/changelog.html

It can be obtained from:
https://dist.apache.org/repos/dist/dev/tomcat/tomcat-9/v9.0.121/

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

The tag is:
https://github.com/apache/tomcat/tree/9.0.121
dc00a53100b38c8eb8befce5855e3b152eed9353

The proposed 9.0.121 release is:
[ ] -1, Broken - do not release
[ ] +1, Stable - go ahead and release as 9.0.121

Rémy

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to