Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Running Jena with a Xerces 2.11.0 build which is XML Schema 1.1 aware (the xerces-java-xml-schema-1.1-dev branch) breaks with a NPE:
ERROR [my.package.MyClass:105] An exception occured during data loading
java.lang.NullPointerException
at org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl.getActualValue(Unknown Source)
at org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl.validate(Unknown Source)
at com.hp.hpl.jena.datatypes.xsd.XSDDatatype.parse(XSDDatatype.java:272)
at com.hp.hpl.jena.graph.impl.LiteralLabelImpl.setValue(LiteralLabelImpl.java:213)
at com.hp.hpl.jena.graph.impl.LiteralLabelImpl.setLiteralLabel_1(LiteralLabelImpl.java:107)
at com.hp.hpl.jena.graph.impl.LiteralLabelImpl.<init>(LiteralLabelImpl.java:96)
at com.hp.hpl.jena.graph.impl.LiteralLabelFactory.createLiteralLabel(LiteralLabelFactory.java:28)
at com.hp.hpl.jena.graph.Node.createLiteral(Node.java:101)
at com.hp.hpl.jena.rdf.arp.JenaReader.convert(JenaReader.java:120)
at com.hp.hpl.jena.rdf.arp.JenaReader.convert(JenaReader.java:143)
at com.hp.hpl.jena.rdf.arp.JenaHandler.statement(JenaHandler.java:89)
at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.triple(XMLHandler.java:86)
at com.hp.hpl.jena.rdf.arp.impl.ParserSupport.triple(ParserSupport.java:228)
at com.hp.hpl.jena.rdf.arp.states.WantDescription.aPredAndObj(WantDescription.java:116)
at com.hp.hpl.jena.rdf.arp.states.WantPropertyElement.theObject(WantPropertyElement.java:213)
at com.hp.hpl.jena.rdf.arp.states.WantTypedLiteral.endElement(WantTypedLiteral.java:50)
at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.endElement(XMLHandler.java:133)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNamespaceBinder.handleEndElement(Unknown Source)
at org.apache.xerces.impl.XMLNamespaceBinder.endElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:155)
at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:173)
at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:160)
at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:232)
at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:235)
at my.package.MyClass.load(MyClass.java:97)
The org.apache.xerces.impl.validation.ValidationState you are passing to the Xerces XSSimpleTypeDecl has a NULL TypeValidatorHelper and the Xerces build which is XML Schema 1.1 aware looks a lot in the TypeValidatorHelper to see if it is running in XML Schema 1.1 compatibility mode like:
final String options = context.getTypeValidatorHelper().isXMLSchema11() ? "Xbh" : "X";
The class org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl is an internal Xerces class. Maybe you should try breaking dependencies to internal classes.