Menu

#94 Juxta silently fails on invalid xml files

open
nobody
Juxta (2)
5
2009-01-24
2009-01-24
No

When provided with an invalid XML document as input, the SAX parser in edu.virginia.speclab.diff.document.DocumentParser fails without giving proper notice to the user. For example non-matching identifiers in the milestone elements are not detected, but result in a NPE:

INFO: Parsing document: /tmp/juxta/docs/Poem3msP.xml
Exception in thread "DocumentSetLoader" java.lang.NullPointerException
at edu.virginia.speclab.diff.document.DocumentParser.startElement(DocumentParser.java:109)
at edu.virginia.speclab.juxta.author.model.JuxtaDocumentFactory$JuxtaDocumentParser.startElement(JuxtaDocumentFactory.java:338)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:533)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:220)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:322)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1693)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1168)
at edu.virginia.speclab.juxta.author.model.JuxtaDocumentFactory.parseDocument(JuxtaDocumentFactory.java:170)
at edu.virginia.speclab.juxta.author.model.JuxtaDocumentFactory.readFromFile(JuxtaDocumentFactory.java:91)
at edu.virginia.speclab.juxta.author.model.DocumentManager.addDocument(DocumentManager.java:283)
at edu.virginia.speclab.juxta.author.model.JuxtaSession.addDocument(JuxtaSession.java:214)
at edu.virginia.speclab.juxta.author.model.JuxtaSession.access$100(JuxtaSession.java:47)
at edu.virginia.speclab.juxta.author.model.JuxtaSession$DocumentSetLoader.run(JuxtaSession.java:455)

Discussion


Log in to post a comment.