https://bz.apache.org/bugzilla/show_bug.cgi?id=69576

            Bug ID: 69576
           Summary: Tomcat doesn't start on JDK 17 due to an
                    ExceptionInInitializerError
           Product: Tomcat 9
           Version: unspecified
          Hardware: PC
                OS: Mac OS X 10.1
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Util
          Assignee: dev@tomcat.apache.org
          Reporter: kevin+bugzi...@leturc.fr
  Target Milestone: -----

Created attachment 39991
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=39991&action=edit
The full server logs during Tomcat start on JDK 17

The recent fix for CVE-2024-56337 shipped within Tomcat 9.0.99 caused error
during Tomcat start while running on JDK 17.
We also use Tomcat 9.x on JDK 11 and didn't observe the issue.

See below the exception preventing Tomcat to start:
---
2025-02-11 05:20:16 SEVERE [main]
org.apache.tomcat.util.digester.Digester.startElement Begin event threw
exception
        java.lang.reflect.InvocationTargetException
                at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
                at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
                at
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
                at
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
                at
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
                at
org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:103)
                at
org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1278)
                at
org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
                at
org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
                at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElementAfterName(Unknown
Source)
                at
org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook(Unknown
Source)
                at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
                at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
                at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
                at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
                at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
                at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)
                at
org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
                at
org.apache.tomcat.util.digester.Digester.parse(Digester.java:1559)
                at
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:623)
                at
org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1844)
                at
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
                at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
                at
org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
                at
java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
                at
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:575)
                at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:466)
                at
org.apache.catalina.startup.HostConfig.start(HostConfig.java:1584)
                at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
                at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
                at
org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
                at
org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
                at
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)
                at
org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:721)
                at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
                at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)
                at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)
                at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
                at
org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
                at
java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
                at
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)
                at
org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)
                at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
                at
org.apache.catalina.core.StandardService.startInternal(StandardService.java:415)
                at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
                at
org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874)
                at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
                at
org.apache.catalina.startup.Catalina.start(Catalina.java:739)
                at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
                at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.base/java.lang.reflect.Method.invoke(Method.java:569)
                at
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
                at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
        Caused by: java.lang.NoClassDefFoundError: Could not initialize class
org.apache.tomcat.util.compat.JreCompat
                at
org.apache.catalina.core.StandardContext.<init>(StandardContext.java:323)
                ... 54 more
        Caused by: java.lang.ExceptionInInitializerError: Exception
java.lang.reflect.InaccessibleObjectException: Unable to make field static
final boolean java.io.FileSystem.useCanonCaches accessible: module java.base
does not "opens java.io" to unnamed module @dcf3e99 [in thread "main"]
                at
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
                at
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
                at
java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
                at
java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
                at
org.apache.tomcat.util.compat.JreCompat.<clinit>(JreCompat.java:131)
                at
org.apache.catalina.connector.Connector.initInternal(Connector.java:1025)
                at
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:122)
                at
org.apache.catalina.core.StandardService.initInternal(StandardService.java:525)
                at
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:122)
                at
org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:986)
                at
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:122)
                at org.apache.catalina.startup.Catalina.load(Catalina.java:690)
                at org.apache.catalina.startup.Catalina.load(Catalina.java:713)
                at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
                at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.base/java.lang.reflect.Method.invoke(Method.java:569)
                at
org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:302)
                at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:472)
---

Note that we don't use Jigsaw in our application.

You can find in the attachments all the logs we get when starting.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to