Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6936624

sharing cached schema causing cvc-complex-type.2.4.b error

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P2
    • 1.4.0
    • 6, 6u14
    • xml
    • 5.0
    • 1.4
    • generic, sparc
    • generic, solaris_10
    • Verified

    Backports

      Description

        Hi,

        IHAC (Accor Hotels) who seems to be hitting CR 6773084 "javax.xml.validation.Schema is not thread safe" during his message queue migration on Solaris 10 Update 3 on a Sun Fire T2000. He suspects this CR because:

           1. the problem is not reproducible with JDK 5.0 (this is the w/a implemented).
           2. if he uses directly the Xerces version bundled with his application's JAXP version (taken at http://repo2.maven.org/maven2/xml-apis/xml-apis/1.3.04/), the problem goes away too.
           3. the error messages looks like the one in CR 6773084:
              2009-11-02 00:40:27,972 ERROR model.OTAReceiverImpl : erreur de validation de la request com.accor.commons.xmlschemas.SchemaValidationException: SAXException : cvc-complex-type.2.4.b: The content of element 'POS' is not complete. One of '{"http://www.opentravel.org/OTA/2003/05":Source}' is expected.
                      at com.accor.commons.xmlschemas.jaxp.JaxpSchemaValidator.validateXmlWithSchema(JaxpSchemaValidator.java:80)
                      at com.accor.commons.xmlschemas.jaxp.JaxpSchemaValidator.validateXmlWithSchema(JaxpSchemaValidator.java:47)
                      at com.accor.ota.receiver.model.OTAReceiverImpl.validateOTARequest(OTAReceiverImpl.java:434)
                      at com.accor.ota.receiver.model.OTAReceiverImpl.getResponse(OTAReceiverImpl.java:545)
                      at com.accor.ota.receiver.webappcore.BaseAbstractOTAServlet.doPost(BaseAbstractOTAServlet.java:85)
                      at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
                      at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
                      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
                      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
                      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
                      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
                      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
                      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
                      at java.lang.Thread.run(Thread.java:619)
              Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.b: The content of element 'POS' is not complete. One of '{"http://www.opentravel.org/OTA/2003/05":Source}' is expected.
                      at com.accor.commons.xmlschemas.XmlValidationHandler.error(XmlValidationHandler.java:57)
                      at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
                      at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
                      at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
                      at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:410)
                      at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3165)
                      at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.elementLocallyValidComplexType(XMLSchemaValidator.java:3147)
                      at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.elementLocallyValidType(XMLSchemaValidator.java:3076)
                      at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processElementContent(XMLSchemaValidator.java:2978)
           4. the problem is seen only on the production system. 800 XML valid messages are discarded (on 300.000 XML messages) with this error message.

        My questions are:

           1. is it possible to escalate CR 6773084 to ask for a fix, knowing that my customer is unlikely to provide us a testcase? And if it turns out to be a Xerces, will the customer has to with JDK 7 to have this newer version integrated?
           2. what is the Xerces version bundled with the JDK 6? Despite my searches, I was unable to find it the documentations or by looking in the code.
           3. customer is wondering if we make some modifications to the Apache Xerces version. For me, I think answer is "no, this is strictly the same version as given by Apache": correct?

        Thanks,
        Gildas.

        Attachments

          Issue Links

            Activity

              People

                joehw Joe Wang
                joehw Joe Wang
                Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: