... until the collector arrives ...

This "blog" is really just a scratchpad of mine. There is not much of general interest here. Most of the content is scribbled down "live" as I discover things I want to remember. I rarely go back to correct mistakes in older entries. You have been warned :)

2006-06-28

The QName Saga Continues

Sun "fixed" the QName bug as of JDK 1.5.0_07.  That is, they changed the serialver of QName back to what it used to be back in JDK 1.4.  However, this "fix" is problematic since many vendors have already issued patches to accommodate the bug.  For example, BEA has an elaborate workaround to make WebLogic 9.1 interoperate with older version of QName (e.g. as you might find in ALDSP 2.1/WebLogic 8.x).  That workaround is now broken with JDK 1.5.0_07.

However, Sun has thoughtfully provided the system property:

-Dcom.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0

Sparse documentation about this magic incantation can be found in the JAXP 1.3.1 release notes.  When this property is defined, QName will use the serialver ID that existed for only a few microrevs of JDK 1.5.  For reference, here are the relevant serialvers:

Prior to JDK 1.5: -9120448754896609940L
JDK 1.5.0, microrevs _00 through _06: 4418622981026545151L
JDK 1.5.0_07 (and hopefully, everything greater): -9120448754896609940L (once again)

Interestingly, the JDK 1.5.0_07 release notes say that the relevant bug in the Java Bug Parade is "fixed", but the notes for that bug say that no action was taken (which is not true).

WebLogic 9.x vs. JDK 1.5.0_07

WebLogic 9.x won't start at all under JDK 1.5.0_07, even if ALDSP is not in the picture at all.  There seems to be some component within the server that still wants to use the '4418' version of QName.  The magic incantation above will fix the problem.  Check out the thread "javax.xml.namespace.QName incompatible" in the BEA WebLogic server newsgroup.

Blog Archive