Andrew Haley wrote: > Sam Ruby wrote: >> Andrew Haley wrote: >>> Mark Wielaard wrote: >>>> On Sun, 2009年06月21日 at 16:46 +0100, Andrew Haley wrote: >>>>> Sam Ruby wrote: >>>>>> I'm trying to develop a JAXP implementation using CNI, but I get a >>>>>> NullPointerException when I try to get a DOMImplementation. I've >>>>>> attached a small script (tested on Ubuntu 9.04) which demonstrates the >>>>>> problem. >>>>>>>>>>>> Any help would be appreciated. >>>>> Congratulations on this excellent test case. Next time I want to tell >>>>> people how to do it right, I'll point them at your posting. >>>>>>>>>> However, I get >>>>>>>>>> $ sh ~/testdomimpl.sh >>>>> gnu.xml.dom.DomDocumentBuilderFactory@160ecdad >>>>> gnu.xml.dom.DomDocumentBuilder@15ffbc45 >>>>> gnu.xml.dom.DomImpl@15ef0ee5 >>>>>>>>>> gnu.xml.dom.DomDocumentBuilderFactory@2df0bea7 >>>>> gnu.xml.dom.DomDocumentBuilder@2de03d5f >>>>> gnu.xml.dom.DomImpl@2dd0bfdf >>>>> $ gcj --version >>>>> gcj (GCC) 4.4.0 20090307 (Red Hat 4.4.0-0.23) >>>> I get the same with that version of gcj. >>>> But on an older gcj installation: >>>> gcj (Debian 4.3.2-2) 4.3.2 >>>>>>>> gnu.xml.dom.DomDocumentBuilderFactory@6992f029 >>>> gnu.xml.dom.DomDocumentBuilder@647a3539 >>>> gnu.xml.dom.DomImpl@64826fa9 >>>>>>>> gnu.xml.dom.DomDocumentBuilderFactory@17d5dffb >>>> gnu.xml.dom.DomDocumentBuilder@12bcf52b >>>> java.lang.NullPointerException >>>> at java.io.PrintStream.println(PrintStream.java:473) >>> I found the problem. >>>>>> There is an implementation of jaxp in /usr/share/java/jaxp-1.3.jar and >>> another in /usr/lib/libgcj.so.90. They are not the same version, and >>> they are not compatible. >>>>>> If you link against /usr/lib/libgcj.so.90 then you must compile against >>> the version of jaxp in that library. >>>>>> Do this: >>>>>> gcjh -cp /usr/share/java/libgcj.jar -d headers \ >>> org.w3c.dom.DOMImplementation \ >>> javax.xml.parsers.DocumentBuilder \ >>> javax.xml.parsers.DocumentBuilderFactory >> I still see the problem. Even after I apt-get remove libjaxp1.3-java-gcj. >> The problem is not libjaxp1.3-java-gcj, it's libjaxp1.3-java Bingo! apt-get remove libjaxp1.3-java... problem solved! Thanks! - Sam Ruby