On Thu, Feb 20, 2025 at 1:06 PM Mark Thomas <ma...@apache.org> wrote: > > All, > > The recent releases have improved things for users of embedded Tomcat > but there are still some issues. I am seeing reports via $work related > to Spring Boot. > > The problem is on Windows and Mac. The file systems are case insensitive > and DirResourceSet instances are read/write by default so the reflection > code gets called. The impact varies by Java version: > > Java 21 - no issue as the code doesn't get called > > Java 17 - exception is thrown and the web application fails to start due > to missing --add-opens
Where does the exception come from this time ? Rémy > Java 11 - warning is logged but otherwise web application starts > normally > > Java 8 - web application starts normally > > > Having chatted at length with the Spring Boot team, they are going to > make the DirResourceSet instances read only by default which works > around the Java 17 issue but not the Java 11 issue as reflection also > occurs in the init of JreCompat. > > I have performed some testing and confirmed that the java.io.FileSystem > class is loaded by the JRE before any application code gets a chance to > execute. That means we can use checking the command line arguments to > determine whether the cache is enabled/disabled. > > To reduce the impact on anyone using Tomcat in embedded mode - including > but not limited to Spring Boot - I intend to make the following > improvements: > > Java 17 > Check the command line arguments to determine if the canonical resource > name cache has been enabled > Switch to lazy initialisation for JreCompat.useCanonCachesField so > reflection is not used unless Tomcat needs to try and disable the cache > > Java 16 and below > Check the command line arguments to determine if the canonical resource > name cache has been disabled > Switch to lazy initialisation for JreCompat.useCanonCachesField so > reflection is not used unless Tomcat needs to try and disable the cache > > > I don't think there is a need to rush out these changes but I'm going to > start work on them now so they are ready if we need them in a hurry. > > Mark > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org