The NamespacePrefixMapperUtils.java first assumes that the applicationis running with Sun Java 1.6 by setting com.sun.xml.internal.bind.namespacePrefixMapper to new NamespacePrefixMapperSunInternal().
The code assumes this will fail with a NoClassDefFoundError on a non Java6 systems and then tries to use the JAXB-RI implementation instead.
However on a particular OpenJDK implementation (1.6.0_23) a javax.xml.bind.PropertyException is thrown instead, resulting in the Marshaller not being created with JAXB-RI. I'm not sure why a NoClassDefFoundError isn't thrown. The comments in the code ...