You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by "Benson Margulies (JIRA)" <ji...@apache.org> on 2008/11/16 18:35:44 UTC

[jira] Resolved: (WSCOMMONS-365) schema files with the same namespace throw exception

     [ https://issues.apache.org/jira/browse/WSCOMMONS-365?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benson Margulies resolved WSCOMMONS-365.
----------------------------------------

       Resolution: Fixed
    Fix Version/s: XmlSchema 1.4.3

Fix derived from remarks applies.

> schema files with the same namespace throw exception
> ----------------------------------------------------
>
>                 Key: WSCOMMONS-365
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-365
>             Project: WS-Commons
>          Issue Type: Bug
>          Components: XmlSchema
>         Environment: Eclipse
>            Reporter: Alexander Ilyin
>             Fix For: XmlSchema 1.4.3
>
>
> XmlSchemaCollection couldn't add the schema when other one was already added and had the same namespace.
> It happened because the uniqueness of some schema is calculated by it's namespace and systemId. systemId is calculated from the getSystemId() of the underlying InputSource.
> In case getSystemId()  returns null the exception will be thrown (which is happened in my case because my schema is read from the eclipse bundle) 
> When method resolveXmlSchema is creating the SchemaKey for checking the uniqueness of the schema it does right by calculating the systemId with:
> final String systemId = source.getSystemId() == null ? schemaLocation
> 					: source.getSystemId();
> But when it has determined the schema had to be read it will fail. In the method XmlSchemaCollection.read just called
> return read(doc, inputSource.getSystemId(), veh, namespaceValidator);
> But inputSource.getSystemId() equals null and it's found previously registered another schema with the same key where systemId was improperly assigned as null.
> I think you need to change the read method  like below:
> return read(doc, source.getSystemId() == null ? schemaLocation : source.getSystemId(), veh, namespaceValidator);  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.