Hi,

As you will have seen from the 8.5.72 release vote and/or bug 65599 there is an issue with 8.5.x, Java 17 and ECJ.

In short:
- the Java EE 7 spec requires that Tomcat 8.5.x runs on Java 7
- Tomcat 8.5.x ships with ECJ 4.6.3, the newest version that runs on
  Java 7
- ECJ 4.63 fails on Java 17 onwards

I was wondering about shipping two versions of ECJ. Using 4.6.3 if running on Java 7 and 4.20 (or whatever Tomcat 9 onwards is using at the time) if running on Java 8.

The implementation could go in ClassLoaderFactory.validateFile(). The idea is that it would skip adding the ECJ version that wasn't required to the class path. It would be a bit of a hack and it would almost certainly need to be hard-coded rather than configurable in anyway.

This isn't the only way I can think of to do this but it is the one that requires the least user input (none) and is the least 'hacky'.

Thoughts?

Is this a problem worth solving? If it is, is there a better way?

Mark

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

Reply via email to