Диагностируем причину, выживаем в JAR hell: не дышим серой и не варимся в котле

>> jHades — scanning classpath for overlapping jars:

file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/xml-apis-1.4.01.jar overlaps with
file:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar — total overlapping classes: 342 — different classloaders.

file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/aspectj-scripting-1.0-agent.jar overlaps with
file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/plexus-classworlds-2.5.1.jar — total overlapping classes: 37 — same classloader! This is an ERROR!

file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/xml-apis-1.4.01.jar overlaps with
file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/stax-api-1.0-2.jar — total overlapping classes: 34 — same classloader! This is an ERROR!

file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/stax-api-1.0-2.jar overlaps with
file:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar — total overlapping classes: 34 — different classloaders.

file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/commons-collections-3.2.1.jar overlaps with
file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/commons-beanutils-1.8.3.jar — total overlapping classes: 10 — same classloader! This is an ERROR!

file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/tomcat-embed-core-8.0.18.jar overlaps with
file:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar — total overlapping classes: 8 — different classloaders.

file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/ejb3-persistence-1.0.2.GA.jar overlaps with
file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/tomcat-embed-core-8.0.18.jar — total overlapping classes: 6 — same classloader! This is an ERROR!

file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/geronimo-spec-jta-1.0-M1.jar overlaps with
file:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar — total overlapping classes: 6 — different classloaders.

file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/sonar-server-5.1.2.jar overlaps with
file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/sonar-core-5.1.2.jar — total overlapping classes: 1 — same classloader! This is an ERROR!

file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/sonar-plugin-api-5.1.2.jar overlaps with
file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/sonar-core-5.1.2.jar — total overlapping classes: 1 — same classloader! This is an ERROR!

>> jHades multipleClassVersionsReport >> Duplicate classpath resources report:

/javax/xml/xpath/SecuritySupport$4.class has 2 versions on these classpath locations:

sun.misc.Launcher$AppClassLoader — file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/xml-apis-1.4.01.jar — class file size = 495
Bootstrap class loader — file:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar — class file size = 896

/javax/xml/transform/sax/SAXResult.class has 2 versions on these classpath locations:

sun.misc.Launcher$AppClassLoader — file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/xml-apis-1.4.01.jar — class file size = 971
Bootstrap class loader — file:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar — class file size = 1397

/org/w3c/dom/NameList.class has 2 versions on these classpath locations:

sun.misc.Launcher$AppClassLoader — file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/xml-apis-1.4.01.jar — class file size = 272
Bootstrap class loader — file:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar — class file size = 309

/org/w3c/dom/html/HTMLStyleElement.class has 2 versions on these classpath locations:

sun.misc.Launcher$AppClassLoader — file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/xml-apis-1.4.01.jar — class file size = 299
Bootstrap class loader — file:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar — class file size = 344

/javax/xml/xpath/SecuritySupport$3.class has 2 versions on these classpath locations:

sun.misc.Launcher$AppClassLoader — file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/xml-apis-1.4.01.jar — class file size = 482
Bootstrap class loader — file:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar — class file size = 908

/org/xml/sax/helpers/XMLReaderAdapter.class has 2 versions on these classpath locations:

sun.misc.Launcher$AppClassLoader — file:/home/igor/dev/projects/sonar-demo/sonarqube-5.1.2/lib/server/xml-apis-1.4.01.jar — class file size = 3251
Bootstrap class loader — file:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar — class file size = 5005

© Habrahabr.ru