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

JDK1.5.0_09 Schema validation slow (took 10-20 minutes) with SAP schema

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: P4 P4
    • None
    • 1.1
    • xml

      Problem:
      NB5.5 EntPack xmltools provides capability to edit schema using its Schema view (a tree or column representation), and it internally calls JDK Schema validator, at certain point when the user is editing xml schema. For the attached schema, the issue is that IDE appears hanging while invoking JDK JAXP schema validator.

      Issue:
      Schema validator that comes bundled with JDK 1.5.0_09 or JDK1.6beta2 is slow with attached schema (See source code section for the schema)

      Steps to reproduce:

      1. download attachment, and unzip to "C:\tmp"
      2. cd c:\tmp\SchemaValidate
      3. java -Xmx256m -classpath .\dist\SchemaValidate.jar;$classpath schemavaliate.Main c:\tmp\SchemaValidate\src\schemavalidate\CREMAS04.xsd

      This would take about 20min to validate.

      There is no error message, however I have taken the thread dump, below is the relevant information:

      The code seems to be hanging at CMStateSet.java:226

      ==========================================================
              at com.sun.org.apache.xerces.internal.impl.dtd.models.CMStateSet.union(C
      MStateSet.java:226)
              at com.sun.org.apache.xerces.internal.impl.xs.models.XSDFACM.buildDFA(XS
      DFACM.java:562)
              at com.sun.org.apache.xerces.internal.impl.xs.models.XSDFACM.<init>(XSDF
      ACM.java:182)
              at com.sun.org.apache.xerces.internal.impl.xs.models.CMBuilder.createDFA
      CM(CMBuilder.java:132)
              at com.sun.org.apache.xerces.internal.impl.xs.models.CMBuilder.getConten
      tModel(CMBuilder.java:92)
              at com.sun.org.apache.xerces.internal.impl.xs.XSComplexTypeDecl.getConte
      ntModel(XSComplexTypeDecl.java:153)
              - locked <0x05fe2ef0> (a com.sun.org.apache.xerces.internal.impl.xs.XSCo
      mplexTypeDecl)
              at com.sun.org.apache.xerces.internal.impl.xs.XSConstraints.fullSchemaCh
      ecking(XSConstraints.java:421)
              at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGramma
      r(XMLSchemaLoader.java:526)
              at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGramma
      r(XMLSchemaLoader.java:485)
              at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.n
      ewSchema(XMLSchemaFactory.java:206)
              at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:585)
      =======================================================
      Attaching schema from http://www.netbeans.org/issues/show_bug.cgi?id=87152 for testing purposes
      Also, found that validating following following (each) schema would take 3-4 sec.
      I would expect each validation should be <<1 sec (in millis rather than seconds).

      The issue here is if in our tool (NB5.5 EntPack Schema tool) user (after opening file messages.xsd in IDE), tries to expand messages.xsd|Groups|ALLMESSAGES.CONTENT|choice|ACK element, it will try to open files "ACK.xsd" "segments.xsd|" fields.xsd" "datatypes.xsd". While opening this file it will also try to validate these schema files. This will cause the IDE to appear slow to user doing certain basic operation in schema tools. You can see we are talking about some 10-15 sec, on top on other UI time spend by the schema tool. This is unacceptable to schema tools user.

      To get this schema download attached hl7_v2.3.zip file into c:\tmp\hld.

      C:\Documents and Settings\Owner\SchemaValidate>java -Xmx256m -classpath dist\Sch
      emaValidate.jar;%classpath% schemavalidate.Main "C:\tmp\hld\messages.xsd"

      C:\Documents and Settings\Owner\SchemaValidate>java -Xmx256m -classpath dist\Sch
      emaValidate.jar;%classpath% schemavalidate.Main "C:\tmp\hld\ACK.xsd"

      C:\Documents and Settings\Owner\SchemaValidate>java -Xmx256m -classpath dist\Sch
      emaValidate.jar;%classpath% schemavalidate.Main "C:\tmp\hld\segments.xsd"

      C:\Documents and Settings\Owner\SchemaValidate>java -Xmx256m -classpath dist\Sch
      emaValidate.jar;%classpath% schemavalidate.Main "C:\tmp\hld\fields.xsd"

      C:\Documents and Settings\Owner\SchemaValidate>java -Xmx256m -classpath dist\Sch
      emaValidate.jar;%classpath% schemavalidate.Main "C:\tmp\hld\datatypes.xsd"

            joehw Joe Wang
            duke J. Duke
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: