You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by "Octavian Nadolu (JIRA)" <xe...@xml.apache.org> on 2012/09/24 11:34:07 UTC

[jira] [Created] (XERCESJ-1589) NullPointerException when parsing an instance that has a XSD 1.0 schema with 'defaultOpenContent' element

Octavian Nadolu created XERCESJ-1589:
----------------------------------------

             Summary: NullPointerException when parsing an instance that has a XSD 1.0 schema with 'defaultOpenContent' element
                 Key: XERCESJ-1589
                 URL: https://issues.apache.org/jira/browse/XERCESJ-1589
             Project: Xerces2-J
          Issue Type: Bug
          Components: XML Schema 1.0 Structures, XML Schema 1.1 Structures
    Affects Versions: 2.11.0
            Reporter: Octavian Nadolu


If I parse the instance.xml file using the following java code, I get an NullPointerException. I tested on the xml-schema-1.1-dev branch. 

----------Java code-----------------------
XMLReader parser = new org.apache.xerces.parsers.SAXParser();
parser.setFeature(Constants.XERCES_FEATURE_PREFIX + Constants.SCHEMA_VALIDATION_FEATURE, true);
parser.parse("file:/C:/instance.xml");
--------------------------------------

-----------------instance.xml-------------------
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:noNamespaceSchemaLocation="schema.xsd"/>    
-------------------------------------------------------

---------------------schema.xsd-----------------
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:defaultOpenContent mode="suffix">
        <xs:any/>
    </xs:defaultOpenContent>
    
    <xs:element name="root"/>
</xs:schema>
-------------------------------------------------------- 

-----------NullPointerException -------------------------------
Exception in thread "main" java.lang.NullPointerException
	at org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.traverseOpenContent(XSDComplexTypeTraverser.java:268)
	at org.apache.xerces.impl.xs.traversers.XSDHandler.buildGlobalNameRegistries(XSDHandler.java:1481)
	at org.apache.xerces.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:716)
	at org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:644)
	at org.apache.xerces.impl.xs.XMLSchemaValidator.findSchemaGrammar(XMLSchemaValidator.java:3074)
	at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2259)
	at org.apache.xerces.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:880)
	at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:275)
	at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(XMLNSDocumentScannerImpl.java:733)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1754)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324)
	at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:890)
	at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:813)
	at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1129)
---------------------------------------------------------------------------

It seems that in the XSDHandlerXerces.buildGlobalNameRegistries(), the method XSDComplexTypeTraverser.traverseOpenContent(Element, XSDocumentInfo, SchemaGrammar, boolean) is called even if the current schema version is 1.0. For 1.0 this method should not be called. 
Also the XSAttributeCheckerXerces.checkAttributes(Element, boolean, XSDocumentInfo, boolean) method can return null in some cases, maybe you should check that the attributes array is not null before using it.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org


[jira] [Resolved] (XERCESJ-1589) NullPointerException when parsing an instance that has a XSD 1.0 schema with 'defaultOpenContent' element

Posted by "Michael Glavassevich (JIRA)" <xe...@xml.apache.org>.
     [ https://issues.apache.org/jira/browse/XERCESJ-1589?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Glavassevich resolved XERCESJ-1589.
-------------------------------------------

    Resolution: Fixed

The check for the XML schema version was in the wrong place. Fixed in SVN rev 1391618.
                
> NullPointerException when parsing an instance that has a XSD 1.0 schema with 'defaultOpenContent' element
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: XERCESJ-1589
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1589
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: XML Schema 1.0 Structures, XML Schema 1.1 Structures
>    Affects Versions: 2.11.0
>            Reporter: Octavian Nadolu
>            Assignee: Michael Glavassevich
>
> If I parse the instance.xml file using the following java code, I get an NullPointerException. I tested on the xml-schema-1.1-dev branch. 
> ----------Java code-----------------------
> XMLReader parser = new org.apache.xerces.parsers.SAXParser();
> parser.setFeature(Constants.XERCES_FEATURE_PREFIX + Constants.SCHEMA_VALIDATION_FEATURE, true);
> parser.parse("file:/C:/instance.xml");
> --------------------------------------
> -----------------instance.xml-------------------
> <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:noNamespaceSchemaLocation="schema.xsd"/>    
> -------------------------------------------------------
> ---------------------schema.xsd-----------------
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
>     <xs:defaultOpenContent mode="suffix">
>         <xs:any/>
>     </xs:defaultOpenContent>
>     
>     <xs:element name="root"/>
> </xs:schema>
> -------------------------------------------------------- 
> -----------NullPointerException -------------------------------
> Exception in thread "main" java.lang.NullPointerException
> 	at org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.traverseOpenContent(XSDComplexTypeTraverser.java:268)
> 	at org.apache.xerces.impl.xs.traversers.XSDHandler.buildGlobalNameRegistries(XSDHandler.java:1481)
> 	at org.apache.xerces.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:716)
> 	at org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:644)
> 	at org.apache.xerces.impl.xs.XMLSchemaValidator.findSchemaGrammar(XMLSchemaValidator.java:3074)
> 	at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2259)
> 	at org.apache.xerces.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:880)
> 	at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:275)
> 	at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(XMLNSDocumentScannerImpl.java:733)
> 	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1754)
> 	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324)
> 	at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:890)
> 	at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:813)
> 	at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108)
> 	at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1129)
> ---------------------------------------------------------------------------
> It seems that in the XSDHandlerXerces.buildGlobalNameRegistries(), the method XSDComplexTypeTraverser.traverseOpenContent(Element, XSDocumentInfo, SchemaGrammar, boolean) is called even if the current schema version is 1.0. For 1.0 this method should not be called. 
> Also the XSAttributeCheckerXerces.checkAttributes(Element, boolean, XSDocumentInfo, boolean) method can return null in some cases, maybe you should check that the attributes array is not null before using it.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org


[jira] [Assigned] (XERCESJ-1589) NullPointerException when parsing an instance that has a XSD 1.0 schema with 'defaultOpenContent' element

Posted by "Michael Glavassevich (JIRA)" <xe...@xml.apache.org>.
     [ https://issues.apache.org/jira/browse/XERCESJ-1589?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Glavassevich reassigned XERCESJ-1589:
---------------------------------------------

    Assignee: Michael Glavassevich
    
> NullPointerException when parsing an instance that has a XSD 1.0 schema with 'defaultOpenContent' element
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: XERCESJ-1589
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1589
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: XML Schema 1.0 Structures, XML Schema 1.1 Structures
>    Affects Versions: 2.11.0
>            Reporter: Octavian Nadolu
>            Assignee: Michael Glavassevich
>
> If I parse the instance.xml file using the following java code, I get an NullPointerException. I tested on the xml-schema-1.1-dev branch. 
> ----------Java code-----------------------
> XMLReader parser = new org.apache.xerces.parsers.SAXParser();
> parser.setFeature(Constants.XERCES_FEATURE_PREFIX + Constants.SCHEMA_VALIDATION_FEATURE, true);
> parser.parse("file:/C:/instance.xml");
> --------------------------------------
> -----------------instance.xml-------------------
> <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:noNamespaceSchemaLocation="schema.xsd"/>    
> -------------------------------------------------------
> ---------------------schema.xsd-----------------
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
>     <xs:defaultOpenContent mode="suffix">
>         <xs:any/>
>     </xs:defaultOpenContent>
>     
>     <xs:element name="root"/>
> </xs:schema>
> -------------------------------------------------------- 
> -----------NullPointerException -------------------------------
> Exception in thread "main" java.lang.NullPointerException
> 	at org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.traverseOpenContent(XSDComplexTypeTraverser.java:268)
> 	at org.apache.xerces.impl.xs.traversers.XSDHandler.buildGlobalNameRegistries(XSDHandler.java:1481)
> 	at org.apache.xerces.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:716)
> 	at org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:644)
> 	at org.apache.xerces.impl.xs.XMLSchemaValidator.findSchemaGrammar(XMLSchemaValidator.java:3074)
> 	at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2259)
> 	at org.apache.xerces.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:880)
> 	at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:275)
> 	at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(XMLNSDocumentScannerImpl.java:733)
> 	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1754)
> 	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324)
> 	at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:890)
> 	at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:813)
> 	at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108)
> 	at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1129)
> ---------------------------------------------------------------------------
> It seems that in the XSDHandlerXerces.buildGlobalNameRegistries(), the method XSDComplexTypeTraverser.traverseOpenContent(Element, XSDocumentInfo, SchemaGrammar, boolean) is called even if the current schema version is 1.0. For 1.0 this method should not be called. 
> Also the XSAttributeCheckerXerces.checkAttributes(Element, boolean, XSDocumentInfo, boolean) method can return null in some cases, maybe you should check that the attributes array is not null before using it.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org