Subjects
Home
Xalan extension functions
Fomatting question serializing DOM with pretty print
xalan with pull parser
Cannot find the declaration
Apache Xalan drop support to run on JRE 1 1 x
Why does Doctype change processing of a document
Node set to XML string via Java extensions in Xalan J: possible?
Templates/Transformers + thread safety???
Problem evaluating xpath with muliple prefix with different namespace
remove an arbitrary attribute from xsl output
Xalan3 XSLT 2 0 XPath 2 0 support?
Problem using compiled translets with Xalan !!
Xalan and jstl 1 1 problem with transform tag
NullPointer in DOM2DTM getLocalName
URIResolvers base parameter with xsltc and cascaded imports
Performance problem for Xalan J on intel dual core
Standard libraries in JAXP?
Serializing a DOM tree to XML file, customize entities replacement
Library Conflict Involving BCEL Library
A question on how users are using <xsl:message >
Kevin Cormier as a new Apache Xalan J committer
Struggling to iterate over tokenized string
Xalan count() trouble
Problem with recursive xpath
Error when switching to java 1 5
document( ' ')
Problem with Xalan2 7 0 transformation
cr/lf options
entity encoded XML
can xalan transform 2 xml using one xslt?
Xalan J JIRA defect review Monday October 16, 2006 from 2:00 to 3:30 pm ED
xsl transform with cdata section elements
xslt parameters not expanded
Weird behavior of XPath evaluate()
How to avoid <xsl:message > instruction prints stylesheet file informations ?
Cannot find SimpleTransform subdirectory after installing Xalan J
recover from document not found exceptions
jdk1 5 and Xalan jar differences?
Performance Issue
Error/Bug adding floating point numbers
XPathAPI: eval exp using nodes with default namespace
modifying xalan to output invalid XML
NullPointerException
mege two separate xml nodes into one
Is this a XALAN document identification bug?
is StylesheetRoot really java io Serializable ?
transform() fails for DOMSource but succeeds for StreamSource
Thoughts on Transformer parameter passing
HELP, Xalan and jstl 1 1 problem with transformer
Problem with XPath namespace axis?
string utils:replace deleting search string if replacement string is an HTML
help with enumeration values pls
xalan 2 5 1 vs 2 7 performance question
How to insert/update in XML document
HTML Serialization and Handling of Ampersands in HREF Attributes
XHTML link tag stripping
SystemId Unknown; Line #24; Column #49; java lang NullPointerException
xpath text() help
Apostrophe problem with xalan 2 7 0
How to set variables in XML document?
Links
Home
Oracle database error code ...
 
Search:  
Power your search with and, or, +, -, or "some phrase" operators.
Extremely high memory usage (and OutOfMemory) when using EXSLT str:tokenize or s

Extremely high memory usage (and OutOfMemory) when using EXSLT str:tokenize or s

2005-10-19       - By Michael Heinrichs

There appears to be a severe memory usage issue when using the EXSLT
functions str:tokenize or str:split as included in the latest version of
Xalan (2.7.0, and also 2.6.1).  Even for relatively small XML files,
when repeatedly using these functions, we are encountering OutOfMemory
exceptions even with large (2GB) maximum heap sizes.  The code for these
extension functions looks quite straightforward, so I suspect the
problem lies deeper.

I created a simple testcase to demonstrate the problem, please see the
details below.  In this particular example, I hit another exception (No
more DTM IDs are available) before I reach OutOfMemory, but I imagine
that if I tweak my example appropriately, I would hit OutOfMemory
instead.

If I use the stylesheet version of the EXSLT function, I don't encounter
this memory issue.

I searched the mailing list archives and bug databases, but didn't find
any references to this issue.

Thanks,

Mike

test.xml (vary the number of 'row' elements)
=======<?xml version="1.0" encoding="ISO-8859-1"?>
<document>
<row>1.2.3.4.5.6.7.8.9.0</row>
</document>
===================================
test.xsl
=======<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:str="http://exslt.org/strings">

 <xsl:template match="row">
   <xsl:variable name="test" select="str:tokenize(.,'.')"/>
 </xsl:template>
</xsl:stylesheet>
===================================
Command-line:
> java -cp
"C:\tmp\xalan-j_2_7_0\xalan.jar;C:\tmp\xalan-j_2_7_0\serializer.jar;C:\t
mp\xalan-j_2_7_0\xml-apis.jar;C:\tmp\xalan-j_2_7_0\xercesImpl.jar"
-Xmx1024m org.apache.xalan.xslt.Process -IN test.xml -XSL test.xsl -OUT
test_out.xml

Test 1: test.xml with 1,000 rows; file size: 32KB
Result: Transformation completes successfully; maximum process size:
~163MB

Test 2: test.xml with 10,000 rows; file size: 312KB
Result: Transformation aborts with exception; maximum process size:
~900MB

file:///c:/tmp/test.xsl; Line #12; Column #61; XSLT Error
(javax.xml.transform.TransformerException): No more DTM IDs are
available Exception in thread "main" java.lang.RuntimeException: No more
DTM IDs are available
       at org.apache.xalan.xslt.Process.doExit(Process.java:1153)
       at org.apache.xalan.xslt.Process.main(Process.java:1126)

> java -version
java version "1.5.0_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode, sharing)