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/01/11 12:13:00 UTC

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

Radu Coravu created XERCESJ-1754:
------------------------------------

             Summary: 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
         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), sometime probably in the Xerces 2.12.2 release there was a fast return added to 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