Page 1 of 1

NullPointerException trying to open doc with TOC

PostPosted: Wed Sep 05, 2012 5:42 am
by desau
Hi all,

I've got a document containing a table of contents that was generated from Word 2010, version 14.0.6123.5001 (64 bit). When I attempt to open this doc, I get a NullPointer in org.docx4j.wml.Id.hashCode.

I've pulled everything out of the doc except the TOC and two lines (to give the TOC some content).

I get the exception in docx4j 2.8.0 and in latest (Sept 2) nightly jar.

document attached, full stack trace follows: (this stack trace came from the Sept 2 nightly code)

11:29:54,631 INFO [http-8080-1] [ContentTypeManager] Detected WordProcessingML package
11:29:54,631 INFO [http-8080-1] [Part] /_rels/.rels
11:29:54,631 INFO [http-8080-1] [RelationshipsPart] unmarshalling org.docx4j.openpackaging.parts.relationships.RelationshipsPart
11:29:54,633 INFO [http-8080-1] [Part] /docProps/core.xml
11:29:54,633 INFO [http-8080-1] [DocPropsCorePart] unmarshalling org.docx4j.openpackaging.parts.DocPropsCorePart
11:29:54,638 INFO [http-8080-1] [Part] /docProps/app.xml
11:29:54,638 INFO [http-8080-1] [DocPropsExtendedPart] unmarshalling org.docx4j.openpackaging.parts.DocPropsExtendedPart
11:29:54,640 INFO [http-8080-1] [Part] /word/document.xml
11:29:54,640 INFO [http-8080-1] [JaxbXmlPart] For org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart, unmarshall via binder
java.lang.NullPointerException
at org.docx4j.wml.Id.hashCode(Id.java:129)
at java.util.HashMap.put(HashMap.java:372)
at com.sun.xml.bind.v2.runtime.AssociationMap.addInner(AssociationMap.java:78)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.recordInnerPeer(UnmarshallingContext.java:1025)
at com.sun.xml.bind.v2.runtime.unmarshaller.StructureLoader.startElement(StructureLoader.java:147)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:402)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:380)
at com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:35)
at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:101)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:224)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:261)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:230)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:261)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:230)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:261)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:230)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:261)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:230)
at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:107)
at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:90)
at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:83)
at com.sun.xml.bind.v2.runtime.BinderImpl.associativeUnmarshal(BinderImpl.java:140)
at com.sun.xml.bind.v2.runtime.BinderImpl.unmarshal(BinderImpl.java:111)
at org.docx4j.openpackaging.parts.JaxbXmlPartXPathAware.unmarshal(JaxbXmlPartXPathAware.java:171)
at org.docx4j.openpackaging.io.LoadFromZipNG.getRawPart(LoadFromZipNG.java:558)
at org.docx4j.openpackaging.io.LoadFromZipNG.getPart(LoadFromZipNG.java:429)
at org.docx4j.openpackaging.io.LoadFromZipNG.addPartsFromRelationships(LoadFromZipNG.java:352)
at org.docx4j.openpackaging.io.LoadFromZipNG.process(LoadFromZipNG.java:245)
at org.docx4j.openpackaging.io.LoadFromZipNG.get(LoadFromZipNG.java:193)

Re: NullPointerException trying to open doc with TOC

PostPosted: Wed Sep 05, 2012 8:21 am
by jason
Works for me.

I think you may be using an old/problematic JAXB implementation.

What is your JVM and runtime environment?

Re: NullPointerException trying to open doc with TOC

PostPosted: Wed Sep 05, 2012 8:59 am
by desau
hmm. perhaps so.

$ xjc -version
xjc version "JAXB 2.1.10 in JDK 6"
JavaTM Architecture for XML Binding(JAXB) Reference Implementation, (build JAXB 2.1.10 in JDK 6)
$ java -version
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)

Re: NullPointerException trying to open doc with TOC

PostPosted: Wed Sep 05, 2012 9:15 am
by desau
I take that back: I had an older jaxb that was being included in the classpath: 2.1.2

When I rip that out, I get the default JVM version (2.1.10). And .. docx4j reads the doc fine with this version. Thanks Jason!