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

Translation of large XSL file using JDK xalan fails with 'Could not compile stylesheet' error.

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Unresolved
    • P3
    • tbd
    • 8u321, 11, 17, 19, 20
    • xml

    Description

      Translation of large XSL file using JDK xalan fails with 'Could not compile stylesheet' error.

      -bash-4.1$ java XML_XSL_Test
      ERROR: 'Could not compile stylesheet'
      FATAL ERROR: 'Internal XSLTC error: a method in the translet exceeds the
      Java Virtual Machine limitation on the length of a method of 64 kilobytes.
      This is usually caused by templates in a stylesheet that are very large. Try
      restructuring your stylesheet to use smaller templates.'
                 :Internal XSLTC error: a method in the translet exceeds the Java
      Virtual Machine limitation on the length of a method of 64 kilobytes. This
      is usually caused by templates in a stylesheet that are very large. Try
      restructuring your stylesheet to use smaller templates.
      javax.xml.transform.TransformerConfigurationException: Internal XSLTC error:
      a method in the translet exceeds the Java Virtual Machine limitation on the
      length of a method of 64 kilobytes. This is usually caused by templates in a
      stylesheet that are very large. Try restructuring your stylesheet to use
      smaller templates.
              at
      com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplat
      es(TransformerFactoryImpl.java:988)
              at
      com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransfo
      rmer(TransformerFactoryImpl.java:761)
              at XML_XSL_Test.main(XML_XSL_Test.java:25)
      Caused by:
      com.sun.org.apache.xalan.internal.xsltc.compiler.util.InternalError: Internal
      XSLTC error: a method in the translet exceeds the Java Virtual Machine
      limitation on the length of a method of 64 kilobytes. This is usually caused
      by templates in a stylesheet that are very large. Try restructuring your
      stylesheet to use smaller templates.
              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator.outlineC
      hunks(MethodGenerator.java:1193)
              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator.getGener
      atedMethods(MethodGenerator.java:1899)
              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator.addMethod
      (ClassGenerator.java:137)
              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.Mode.compileApplyTemplates(Mo
      de.java:1040)
              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.Stylesheet.compileModes(Style
      sheet.java:622)
              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.Stylesheet.translate(Styleshe
      et.java:735)
              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.XSLTC.compile(XSLTC.java:478)

              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.XSLTC.compile(XSLTC.java:553)

              at
      com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplat
      es(TransformerFactoryImpl.java:947)
              ... 2 more
      ---------
      com.sun.org.apache.xalan.internal.xsltc.compiler.util.InternalError: Internal
      XSLTC error: a method in the translet exceeds the Java Virtual Machine
      limitation on the length of a method of 64 kilobytes. This is usually caused
      by templates in a stylesheet that are very large. Try restructuring your
      stylesheet to use smaller templates.
              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator.outlineC
      hunks(MethodGenerator.java:1193)
              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator.getGener
      atedMethods(MethodGenerator.java:1899)
              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator.addMethod
      (ClassGenerator.java:137)
              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.Mode.compileApplyTemplates(Mo
      de.java:1040)
              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.Stylesheet.compileModes(Style
      sheet.java:622)
              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.Stylesheet.translate(Styleshe
      et.java:735)
              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.XSLTC.compile(XSLTC.java:478)

              at
      com.sun.org.apache.xalan.internal.xsltc.compiler.XSLTC.compile(XSLTC.java:553)

              at
      com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplat
      es(TransformerFactoryImpl.java:947)
              at
      com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransfo
      rmer(TransformerFactoryImpl.java:761)
              at XML_XSL_Test.main(XML_XSL_Test.java:25)

      Works fine with Apache xalan , verified with Apache xalan-2.4.1 versions till Apache xalan-2.7.2.

      Attachments

        1. XSLTest.java
          0.9 kB
        2. SOAPRequest.xsl
          40 kB
        3. Message.xml
          1 kB

        Activity

          People

            rreddy Ravi Reddy
            shadowbug Shadow Bug
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated: