I tried using the Apache XMLConfiguration to save the settings of an application I am developing to XML format. When I used it with Java 1.5 it all worked perfectly; however if I tried using it with Java 1.6 I was getting the following exception.
Exception in thread "main" java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.getXmlStandalone()Z at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.setDocumentInfo(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source) at org.apache.commons.configuration.XMLConfiguration.save(XMLConfiguration.java:880) at org.apache.commons.configuration.AbstractHierarchicalFileConfiguration$FileConfigurationDelegate.save(AbstractHierarchicalFileConfiguration.java:454) at org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:546) at org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:513) at org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:491) at org.apache.commons.configuration.AbstractFileConfiguration.save(AbstractFileConfiguration.java:403) at org.apache.commons.configuration.AbstractHierarchicalFileConfiguration.save(AbstractHierarchicalFileConfiguration.java:199)
After doing some search on google I found that this can be a problem with the xerces XML library (xercesImpl.jar). Checking the 3rd party libraries I am using in my project, I found a library that was using and distributing an earlier version of xercesImpl.jar.
I downloaded the latest version (2.91) of xercesImpl.jar from the Apache xerces project (http://xerces.apache.org/mirrors.cgi#binary) and replaced in the 3rd party library I was using the xercesImpl.jar file with the one I downloaded. Now everything seems to work fine, even in Java 1.6. 🙂