Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8156292 | 8u111 | Aleksej Efimov | P3 | Resolved | Fixed | b01 |
JDK-8151843 | 8u102 | Aleksej Efimov | P3 | Resolved | Fixed | b02 |
JDK-8162135 | emb-8u111 | Aleksej Efimov | P3 | Resolved | Fixed | b01 |
When XSL transformation with Xalan involves too many temporary result trees, the transformation can run out of DTM IDs, resulting in an exception like:
ERROR: 'No more DTM IDs are available'
javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.dtm.DTMException: No more DTM IDs are available
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:746)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:351)
at Transform.main(Transform.java:14)
I'm attaching an example to reproduce.
Expected output:
"Looks like no exception. Bye."
Actual output:
ERROR: 'No more DTM IDs are available'
javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.dtm.DTMException: No more DTM IDs are available
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:746)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:351)
at Transform.main(Transform.java:14)
Caused by: com.sun.org.apache.xml.internal.dtm.DTMException: No more DTM IDs are available
at com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault.addDTM(DTMManagerDefault.java:151)
at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:397)
at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:215)
at com.sun.org.apache.xalan.internal.xsltc.dom.SAXImpl.getResultTreeFrag(SAXImpl.java:1831)
at com.sun.org.apache.xalan.internal.xsltc.dom.DOMAdapter.getResultTreeFrag(DOMAdapter.java:437)
at template.dodot()
at template.recursefinal()
at template.recursefinal()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.template$dot$0()
at template.applyTemplates()
at template.transform()
at com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet.transform(AbstractTranslet.java:620)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:739)
... 2 more
---------
com.sun.org.apache.xml.internal.dtm.DTMException: No more DTM IDs are available
at com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault.addDTM(DTMManagerDefault.java:151)
at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:397)
at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:215)
at com.sun.org.apache.xalan.internal.xsltc.dom.SAXImpl.getResultTreeFrag(SAXImpl.java:1831)
at com.sun.org.apache.xalan.internal.xsltc.dom.DOMAdapter.getResultTreeFrag(DOMAdapter.java:437)
at template.dodot()
at template.recursefinal()
at template.recursefinal()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.template$dot$0()
at template.applyTemplates()
at template.transform()
at com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet.transform(AbstractTranslet.java:620)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:739)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:351)
at Transform.main(Transform.java:14)
ERROR: 'No more DTM IDs are available'
javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.dtm.DTMException: No more DTM IDs are available
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:746)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:351)
at Transform.main(Transform.java:14)
I'm attaching an example to reproduce.
Expected output:
"Looks like no exception. Bye."
Actual output:
ERROR: 'No more DTM IDs are available'
javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.dtm.DTMException: No more DTM IDs are available
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:746)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:351)
at Transform.main(Transform.java:14)
Caused by: com.sun.org.apache.xml.internal.dtm.DTMException: No more DTM IDs are available
at com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault.addDTM(DTMManagerDefault.java:151)
at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:397)
at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:215)
at com.sun.org.apache.xalan.internal.xsltc.dom.SAXImpl.getResultTreeFrag(SAXImpl.java:1831)
at com.sun.org.apache.xalan.internal.xsltc.dom.DOMAdapter.getResultTreeFrag(DOMAdapter.java:437)
at template.dodot()
at template.recursefinal()
at template.recursefinal()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.template$dot$0()
at template.applyTemplates()
at template.transform()
at com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet.transform(AbstractTranslet.java:620)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:739)
... 2 more
---------
com.sun.org.apache.xml.internal.dtm.DTMException: No more DTM IDs are available
at com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault.addDTM(DTMManagerDefault.java:151)
at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:397)
at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:215)
at com.sun.org.apache.xalan.internal.xsltc.dom.SAXImpl.getResultTreeFrag(SAXImpl.java:1831)
at com.sun.org.apache.xalan.internal.xsltc.dom.DOMAdapter.getResultTreeFrag(DOMAdapter.java:437)
at template.dodot()
at template.recursefinal()
at template.recursefinal()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse2()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.recurse1()
at template.template$dot$0()
at template.applyTemplates()
at template.transform()
at com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet.transform(AbstractTranslet.java:620)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:739)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:351)
at Transform.main(Transform.java:14)
- backported by
-
JDK-8151843 XALAN: ERROR: 'No more DTM IDs are available' when transforming with lots of temporary result trees
-
- Resolved
-
-
JDK-8156292 XALAN: ERROR: 'No more DTM IDs are available' when transforming with lots of temporary result trees
-
- Resolved
-
-
JDK-8162135 XALAN: ERROR: 'No more DTM IDs are available' when transforming with lots of temporary result trees
-
- Resolved
-
- duplicates
-
JDK-8150699 "No more DTM IDs are available" exception while transforming XML
-
- Closed
-