Expected Behavior
Grails 5.3.6 does to work with Tomcat 9.0.99
Actual Behaviour
Grails 5.3.6 does not work with Tomcat 9.0.99
Steps To Reproduce
sdk use grails 5.3.6
sdk use java 17.0.14-zulu
grails create-app myapp
- add this line
ext['tomcat.version'] = '9.0.99' to build.gradle
./gradlew clean bootRun
2025-02-12 14:50:33.475 ERROR --- [ restartedMain] o.s.boot.SpringApplication : Application run failed
org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is java.lang.ExceptionInInitializerError
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:165)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:577)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
at grails.boot.GrailsApp.run(GrailsApp.groovy:99)
at grails.boot.GrailsApp.run(GrailsApp.groovy:458)
at grails.boot.GrailsApp.run(GrailsApp.groovy:445)
at myapp.Application.main(Application.groovy:11)
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.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
Caused by: java.lang.ExceptionInInitializerError: null
at org.apache.catalina.startup.Tomcat.<clinit>(Tomcat.java:1216)
at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:194)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:184)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:162)
... 14 common frames omitted
Caused by: 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 @38797004
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)
... 18 common frames omitted
Its most likely do to this commit: tomcat
see also: GHSA-27hp-xhwr-wr2m v
Environment Information
Example Application
https://github.com/akunourshirazivalta/grailstomcaterror
Version
5.3.6
Expected Behavior
Grails 5.3.6 does to work with Tomcat 9.0.99
Actual Behaviour
Grails 5.3.6 does not work with Tomcat 9.0.99
Steps To Reproduce
sdk use grails 5.3.6sdk use java 17.0.14-zulugrails create-app myappext['tomcat.version'] = '9.0.99'to build.gradle./gradlew clean bootRunIts most likely do to this commit: tomcat
see also: GHSA-27hp-xhwr-wr2m v
Environment Information
Example Application
https://github.com/akunourshirazivalta/grailstomcaterror
Version
5.3.6