6 Replies Latest reply on Mar 24, 2008 2:16 PM by anil.saldhana

    JBossEntityResolver and xsd:redefine resolution

    aloubyansky

      The issue was discovered in http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4136295#4136295

      The problem is that when the schema that contains xsd:redefine is parsed and when the redefine is resolved, the arguments passed to the JBossEntityResolver.resolve(publicId, systemId) are:
      - publicId is the namespace of the schema that contains xsd:redefine
      - systemId is the schemaLocation attribute of the xsd:redefine

      In some cases (i.e. if the namespace of the redefining schema is mapped to its schema location in the JBossEntityResolver and both schemas are in the classpath) this results in StackOverflowError since the JBossEntityResolver is looking at the publicId first during resolveEntity.

      I want to change this to check if the publicId is registered and if the registered schemaLocation is different from the systemId argument then try resolving the systemId argument first.