[jdom-interest] B-7's MANIFEST.MF and newer versions of Xerces = PROBLEMS!!!

Jan C. Zawadzki jcz at geniesystems.com
Mon Sep 17 15:09:45 PDT 2001

I've just spent several days tracking a nasty CLASSPATH problem created 
by an entry in the Beta 7 MANIFEST.MF entry.

Basically the current jdom.jar will try to load the version of xerces it 
ships with - which creates CLASSPATH positioning dependencies that are a 
PAIN to track down.

To fix:

in package/META-INF/MANIFEST.MF, third line:

 >  Class-Path: ../lib/xerces.jar xerces.jar

remove the ../lib/xerces.jar bit.

What makes this so evil is that the JVM's under Linux resolve symbolic 
links.  When an symbolic link to jdom.jar is placed in some project's 
lib directory, both Linux JVM's still load the ../lib/xerces.jar 
RELATIVE to the REAL jdom.jar file - hence forcing the load of the 
xerces file shipped with the jdom package.  If jdom.jar appears prior to 
the newer version of Xerces, bad things happen.

To be honest I don't understand the rationale for placing this line 
there in the first place.  If the user can put jdom's jar file in the 
classpath, they can also put xerces there.  Using the class-path entry 
in the manifest file hides classpath behaviour, and makes debugging 
related problems much harder...


More information about the jdom-interest mailing list