[INFRAUTILS-61] ClasspathHellDuplicatesCheckRule fails on Oracle Java (only Oxygen & Fluorine; Neon OK) Created: 17/Dec/18  Updated: 21/Dec/18  Resolved: 21/Dec/18

Status: Resolved
Project: infrautils
Component/s: None
Affects Version/s: Oxygen-SR3, Fluorine, Fluorine-SR1
Fix Version/s: Fluorine-SR2

Type: Bug Priority: Highest
Reporter: Michael Vorburger Assignee: Michael Vorburger
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File INFRAUTILS-61_mvn-test.log     Text File org.opendaylight.infrautils.testutils.tests.ClasspathHellDuplicatesCheckRuleTest-output.txt     Text File org.opendaylight.infrautils.testutils.tests.ClasspathHellDuplicatesCheckRuleTest.txt    

 Description   

as per the discussion on and analysis in the "[infrautils-dev] infrautils build : ClasspathHellDuplicatesCheckRule : Classpath errors detected " thread on https://lists.opendaylight.org/pipermail/infrautils-dev/2018-December/thread.html, the ClasspathHellDuplicatesCheckRule fails when you run on Oracle Java instead of OpenJDK.

The email thread describes the mystery why this could have failed but only for our friends at Ericsson and never for other developer and on the opendaylight.org; I've just been able to confirm that this is due to running under Oracle Java instead of OpenJDK, and locally reproduced this - logs attached.

This problem only affects Oxygen & Fluorine; Neon is OK because https://git.opendaylight.org/gerrit/#/c/76625/ completely changed the implentation, to using Classgraph instead jHades.



 Comments   
Comment by Michael Vorburger [ 17/Dec/18 ]

k.faseela attempted to port https://git.opendaylight.org/gerrit/#/c/76625/ from Neon master back to Oxygen in https://git.opendaylight.org/gerrit/#/c/78826/, but that unfortunately leads to ODLPARENT-167 rearing it's ugly head again. Instead of working around that in Oxygen & Fluorine and breaking who knows what else on those "stable" branches just for this, let's instead of 1. do (both) 2. & 3. suggested on https://lists.opendaylight.org/pipermail/infrautils-dev/2018-December/000823.html, that will have less impacts; I'm going to raise a change for that now...

Comment by Michael Vorburger [ 17/Dec/18 ]

https://git.opendaylight.org/gerrit/#/c/78832 helps us to finally understand the real culprit:

>> jHades multipleClassVersionsReport >> Duplicate classpath resources report:

/META-INF/ORACLE_J.SF has 4 versions on these classpath locations:

sun.misc.Launcher$ExtClassLoader - file:/home/vorburger/bin/jdk1.8.0_191_ORACLE/jre/lib/ext/sunjce_provider.jar - class file size = 20436
 sun.misc.Launcher$ExtClassLoader - file:/home/vorburger/bin/jdk1.8.0_191_ORACLE/jre/lib/ext/sunpkcs11.jar - class file size = 11578
 sun.misc.Launcher$ExtClassLoader - file:/home/vorburger/bin/jdk1.8.0_191_ORACLE/jre/lib/ext/sunec.jar - class file size = 1871
 Bootstrap class loader - file:/home/vorburger/bin/jdk1.8.0_191_ORACLE/jre/lib/jce.jar - class file size = 6993

/META-INF/INDEX.LIST has 2 versions on these classpath locations:

sun.misc.Launcher$AppClassLoader - file:/home/vorburger/.m2/repository/org/objenesis/objenesis/2.5.1/objenesis-2.5.1.jar - class file size = 322
 sun.misc.Launcher$ExtClassLoader - file:/home/vorburger/bin/jdk1.8.0_191_ORACLE/jre/lib/ext/jfxrt.jar - class file size = 4815 

https://git.opendaylight.org/gerrit/78835 fixes this problem for Fluorine (SR2), locally verified.

Generated at Wed Feb 07 20:02:09 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.