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 "Radu Coravu (Jira)" <xe...@xml.apache.org> on 2023/03/27 03:43:00 UTC

[jira] [Commented] (XERCESJ-1754) XMLSchemaValidator reset no longer resets id validation caches

    [ https://issues.apache.org/jira/browse/XERCESJ-1754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17705164#comment-17705164 ] 

Radu Coravu commented on XERCESJ-1754:
--------------------------------------

Thanks [~mukul_gandhi]

> XMLSchemaValidator reset no longer resets id validation caches
> --------------------------------------------------------------
>
>                 Key: XERCESJ-1754
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1754
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: XML Schema 1.1 Structures
>            Reporter: Radu Coravu
>            Assignee: Mukul Gandhi
>            Priority: Major
>         Attachments: test.xml, test.xsd
>
>
> I validate an XML with an XML Schema 1.1 file.
> On the first validation the XML is reported valid.
> On the second validation I re-use the parser, the ID values inside elements are reported as duplicate and I get errors like this reported:
> {code}Message: cvc-type.3.1.3: The value 'thing122' of element 'uid' is not valid.{code}
> Looking at the method org.apache.xerces.impl.xs.XMLSchemaValidator.reset(XMLComponentManager), there is a fast return inside it:
> {code}        if (!parser_settings) {
>             // parser settings have not been changed
>             fValidationManager.addValidationState(fValidationState);
>             // the node limit on the SecurityManager may have changed so need to refresh.
>             nodeFactory.reset();
>             // Re-parse external schema location properties.
>             XMLSchemaLoader.processExternalHints(
>                 fExternalSchemas,
>                 fExternalNoNamespaceSchema,
>                 fLocationPairs,
>                 fXSIErrorReporter.fErrorReporter);
>             return;
>         }{code}
> and this means all the code which for example cleared the IDs cache:
> {code}        // reset ID Context
>         if (fIDContext != null) {
>             fIDContext.clear();
>         }{code}
> is no longer executed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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