]
David Lloyd commented on WFLY-11353:
------------------------------------
EARs and JARs (aka "non-WAR deployments") are what I'm referring to. You
could potentially package your application as an EAR with the MR-JAR dependency in the EAR
rather than inside the WAR. Note that this is just a workaround for the bug.
The proper fix belongs in org.jboss.as.server.deployment.module.VFSResourceLoader though,
and probably isn't too difficult.
Classes for newer versions are not loaded from Multi-Release-JARs in
WARs
-------------------------------------------------------------------------
Key: WFLY-11353
URL:
https://issues.jboss.org/browse/WFLY-11353
Project: WildFly
Issue Type: Bug
Components: Class Loading
Affects Versions: 14.0.0.Final, 15.0.0.Final
Environment: Java 9+
Reporter: Daniel Schwering
Priority: Major
Attachments: buggywar.src.zip, buggywar.war, multireleaselib-0.0.1-SNAPSHOT.jar,
multireleaselib-0.0.1-SNAPSHOT.jar, multireleaselib.src.zip, multireleaselib.src.zip
1
down vote
favorite
Since Java 9 there are Multi-Release JARs ([
MRJARS|https://openjdk.java.net/jeps/238])
that allow different classes for different Java versions to be included in one JAR file. I
was surprised when a Wildfly 14 running on Java 11 executed Java-8-code in a JAR included
in a WAR although the JAR was a MRJAR with code for Java 11. That JAR included as a
dependency for a regular Java SE project is running different code depending on the
running JRE, but when included in a WAR, the Java-11-code seems to be ignored.
Is that expected behavior for a webserver, as Java EE 8 does not explicitly require Java
9 (which introduced MRJARs) but only Java 8?