You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by xa...@xml.apache.org on 2004/09/05 02:05:38 UTC

[jira] Updated: (XALANJ-1241) Unknown error in XPath in recursive string operation

The following issue has been updated:

    Updater: Brian Minchau (mailto:minchau@ca.ibm.com)
       Date: Sat, 4 Sep 2004 5:05 PM
    Changes:
             assignee changed from Xalan Developers Mailing List
             description changed from I use this named template to perform string replacement in texts:

<xsl:template name="replaceString">
    <xsl:param name="string"/><xsl:param name="replace"/><xsl:param
name="replacement"/>
    <xsl:variable name="firstChunk" select="substring-before($string, $replace)"/>
    <xsl:choose>
        <xsl:when test="$firstChunk = '' and not(starts-with($string, $replace))">
            <xsl:value-of select="$string"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="$firstChunk"/><xsl:value-of
select="$replacement" disable-output-escaping="yes"/>
            <xsl:call-template name="replaceString">
                <xsl:with-param name="string" select="substring-after($string,
$replace)"/>
                <xsl:with-param name="replace" select="$replace"/>
                <xsl:with-param name="replacement" select="$replacement"/>
            </xsl:call-template>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

the problem happens randomly (not always on a given input) when I feed some
large texts (few thousands chars are enough) to it, sometimes it yould appear as:

javax.xml.transform.TransformerException: Unknown error in XPath
	at org.apache.xpath.XPath.execute(XPath.java:341)
	at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:311)
	at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:282)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:164)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:178)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2069)
	at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:634)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
	... 
Caused by: java.lang.NullPointerException
	at org.apache.xpath.objects.XRTreeFrag.str(XRTreeFrag.java:280)
	at
org.apache.xpath.functions.FuncSubstringBefore.execute(FuncSubstringBefore.java:86)
	at org.apache.xpath.XPath.execute(XPath.java:318)
	... 59 more
---------
java.lang.NullPointerException
	at org.apache.xpath.objects.XRTreeFrag.str(XRTreeFrag.java:280)
	at
org.apache.xpath.functions.FuncSubstringBefore.execute(FuncSubstringBefore.java:86)
	at org.apache.xpath.XPath.execute(XPath.java:318)
	at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:311)
	at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:282)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:164)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:178)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2069)
	at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:634)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)







and sometimes as:

javax.xml.transform.TransformerException: Unknown error in XPath
	at org.apache.xpath.XPath.execute(XPath.java:341)
	at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:311)
	at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:282)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:177)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	...
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:177)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:164)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:178)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2069)
	at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:634)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
	...
Caused by: java.lang.ArrayIndexOutOfBoundsException
	at
org.apache.xml.utils.SuballocatedIntVector.elementAt(SuballocatedIntVector.java:454)
	at org.apache.xml.dtm.ref.DTMDefaultBase._firstch(DTMDefaultBase.java:523)
	at org.apache.xml.dtm.ref.sax2dtm.SAX2DTM.getStringValue(SAX2DTM.java:1209)
	at org.apache.xpath.objects.XRTreeFrag.str(XRTreeFrag.java:280)
	at
org.apache.xpath.functions.FuncSubstringBefore.execute(FuncSubstringBefore.java:87)
	at org.apache.xpath.XPath.execute(XPath.java:318)
	... 154 more
---------
java.lang.ArrayIndexOutOfBoundsException
	at
org.apache.xml.utils.SuballocatedIntVector.elementAt(SuballocatedIntVector.java:454)
	at org.apache.xml.dtm.ref.DTMDefaultBase._firstch(DTMDefaultBase.java:523)
	at org.apache.xml.dtm.ref.sax2dtm.SAX2DTM.getStringValue(SAX2DTM.java:1209)
	at org.apache.xpath.objects.XRTreeFrag.str(XRTreeFrag.java:280)
	at
org.apache.xpath.functions.FuncSubstringBefore.execute(FuncSubstringBefore.java:87)
	at org.apache.xpath.XPath.execute(XPath.java:318)
	at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:311)
	at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:282)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	...
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:177)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:177)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:177)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:164)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:178)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2069)
	at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:634)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)

The problem seems not to happen any more under neither form if I change the
following method of org.apache.xml.utils.SuballocatedIntVector, instead of:

  public int elementAt(int i)
  {
    // This is actually a significant optimization!
    if(i<m_blocksize)
      return m_map0[i];

    return m_map[i>>>m_SHIFT][i&m_MASK];
  }

I removed the optimization like this:

  public int elementAt(int i)
  {
    return m_map[i>>>m_SHIFT][i&m_MASK];
  }

and the problem disappeared. to I use this named template to perform string replacement in texts:

<xsl:template name="replaceString">
    <xsl:param name="string"/><xsl:param name="replace"/><xsl:param
name="replacement"/>
    <xsl:variable name="firstChunk" select="substring-before($string, $replace)"/>
    <xsl:choose>
        <xsl:when test="$firstChunk = '' and not(starts-with($string, $replace))">
            <xsl:value-of select="$string"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="$firstChunk"/><xsl:value-of
select="$replacement" disable-output-escaping="yes"/>
            <xsl:call-template name="replaceString">
                <xsl:with-param name="string" select="substring-after($string,
$replace)"/>
                <xsl:with-param name="replace" select="$replace"/>
                <xsl:with-param name="replacement" select="$replacement"/>
            </xsl:call-template>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

the problem happens randomly (not always on a given input) when I feed some
large texts (few thousands chars are enough) to it, sometimes it yould appear as:

javax.xml.transform.TransformerException: Unknown error in XPath
	at org.apache.xpath.XPath.execute(XPath.java:341)
	at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:311)
	at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:282)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:164)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:178)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2069)
	at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:634)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
	... 
Caused by: java.lang.NullPointerException
	at org.apache.xpath.objects.XRTreeFrag.str(XRTreeFrag.java:280)
	at
org.apache.xpath.functions.FuncSubstringBefore.execute(FuncSubstringBefore.java:86)
	at org.apache.xpath.XPath.execute(XPath.java:318)
	... 59 more
---------
java.lang.NullPointerException
	at org.apache.xpath.objects.XRTreeFrag.str(XRTreeFrag.java:280)
	at
org.apache.xpath.functions.FuncSubstringBefore.execute(FuncSubstringBefore.java:86)
	at org.apache.xpath.XPath.execute(XPath.java:318)
	at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:311)
	at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:282)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:164)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:178)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2069)
	at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:634)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)







and sometimes as:

javax.xml.transform.TransformerException: Unknown error in XPath
	at org.apache.xpath.XPath.execute(XPath.java:341)
	at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:311)
	at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:282)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:177)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	...
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:177)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:164)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:178)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2069)
	at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:634)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
	...
Caused by: java.lang.ArrayIndexOutOfBoundsException
	at
org.apache.xml.utils.SuballocatedIntVector.elementAt(SuballocatedIntVector.java:454)
	at org.apache.xml.dtm.ref.DTMDefaultBase._firstch(DTMDefaultBase.java:523)
	at org.apache.xml.dtm.ref.sax2dtm.SAX2DTM.getStringValue(SAX2DTM.java:1209)
	at org.apache.xpath.objects.XRTreeFrag.str(XRTreeFrag.java:280)
	at
org.apache.xpath.functions.FuncSubstringBefore.execute(FuncSubstringBefore.java:87)
	at org.apache.xpath.XPath.execute(XPath.java:318)
	... 154 more
---------
java.lang.ArrayIndexOutOfBoundsException
	at
org.apache.xml.utils.SuballocatedIntVector.elementAt(SuballocatedIntVector.java:454)
	at org.apache.xml.dtm.ref.DTMDefaultBase._firstch(DTMDefaultBase.java:523)
	at org.apache.xml.dtm.ref.sax2dtm.SAX2DTM.getStringValue(SAX2DTM.java:1209)
	at org.apache.xpath.objects.XRTreeFrag.str(XRTreeFrag.java:280)
	at
org.apache.xpath.functions.FuncSubstringBefore.execute(FuncSubstringBefore.java:87)
	at org.apache.xpath.XPath.execute(XPath.java:318)
	at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:311)
	at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:282)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	...
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:177)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:177)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:177)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:164)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:178)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2069)
	at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:634)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)

The problem seems not to happen any more under neither form if I change the
following method of org.apache.xml.utils.SuballocatedIntVector, instead of:

  public int elementAt(int i)
  {
    // This is actually a significant optimization!
    if(i<m_blocksize)
      return m_map0[i];

    return m_map[i>>>m_SHIFT][i&m_MASK];
  }

I removed the optimization like this:

  public int elementAt(int i)
  {
    return m_map[i>>>m_SHIFT][i&m_MASK];
  }

and the problem disappeared.
             environment changed from Operating System: Windows NT/2K
Platform: PC to Operating System: Windows NT/2K
Platform: PC
             priority changed to Blocker
             Component changed to XPath
             Component changed from Other
    ---------------------------------------------------------------------
For a full history of the issue, see:

  http://issues.apache.org/jira/browse/XALANJ-1241?page=history

---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/XALANJ-1241

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: XALANJ-1241
    Summary: Unknown error in XPath in recursive string operation
       Type: Bug

     Status: Unassigned
   Priority: Blocker

    Project: XalanJ2
 Components: 
             XPath
   Versions:
             2.4

   Assignee: 
   Reporter: Stefano Debenedetti

    Created: Tue, 22 Oct 2002 5:17 AM
    Updated: Sat, 4 Sep 2004 5:05 PM
Environment: Operating System: Windows NT/2K
Platform: PC

Description:
I use this named template to perform string replacement in texts:

<xsl:template name="replaceString">
    <xsl:param name="string"/><xsl:param name="replace"/><xsl:param
name="replacement"/>
    <xsl:variable name="firstChunk" select="substring-before($string, $replace)"/>
    <xsl:choose>
        <xsl:when test="$firstChunk = '' and not(starts-with($string, $replace))">
            <xsl:value-of select="$string"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="$firstChunk"/><xsl:value-of
select="$replacement" disable-output-escaping="yes"/>
            <xsl:call-template name="replaceString">
                <xsl:with-param name="string" select="substring-after($string,
$replace)"/>
                <xsl:with-param name="replace" select="$replace"/>
                <xsl:with-param name="replacement" select="$replacement"/>
            </xsl:call-template>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

the problem happens randomly (not always on a given input) when I feed some
large texts (few thousands chars are enough) to it, sometimes it yould appear as:

javax.xml.transform.TransformerException: Unknown error in XPath
	at org.apache.xpath.XPath.execute(XPath.java:341)
	at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:311)
	at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:282)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:164)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:178)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2069)
	at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:634)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
	... 
Caused by: java.lang.NullPointerException
	at org.apache.xpath.objects.XRTreeFrag.str(XRTreeFrag.java:280)
	at
org.apache.xpath.functions.FuncSubstringBefore.execute(FuncSubstringBefore.java:86)
	at org.apache.xpath.XPath.execute(XPath.java:318)
	... 59 more
---------
java.lang.NullPointerException
	at org.apache.xpath.objects.XRTreeFrag.str(XRTreeFrag.java:280)
	at
org.apache.xpath.functions.FuncSubstringBefore.execute(FuncSubstringBefore.java:86)
	at org.apache.xpath.XPath.execute(XPath.java:318)
	at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:311)
	at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:282)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:164)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:178)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2069)
	at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:634)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)







and sometimes as:

javax.xml.transform.TransformerException: Unknown error in XPath
	at org.apache.xpath.XPath.execute(XPath.java:341)
	at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:311)
	at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:282)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:177)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	...
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:177)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:164)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:178)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2069)
	at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:634)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
	...
Caused by: java.lang.ArrayIndexOutOfBoundsException
	at
org.apache.xml.utils.SuballocatedIntVector.elementAt(SuballocatedIntVector.java:454)
	at org.apache.xml.dtm.ref.DTMDefaultBase._firstch(DTMDefaultBase.java:523)
	at org.apache.xml.dtm.ref.sax2dtm.SAX2DTM.getStringValue(SAX2DTM.java:1209)
	at org.apache.xpath.objects.XRTreeFrag.str(XRTreeFrag.java:280)
	at
org.apache.xpath.functions.FuncSubstringBefore.execute(FuncSubstringBefore.java:87)
	at org.apache.xpath.XPath.execute(XPath.java:318)
	... 154 more
---------
java.lang.ArrayIndexOutOfBoundsException
	at
org.apache.xml.utils.SuballocatedIntVector.elementAt(SuballocatedIntVector.java:454)
	at org.apache.xml.dtm.ref.DTMDefaultBase._firstch(DTMDefaultBase.java:523)
	at org.apache.xml.dtm.ref.sax2dtm.SAX2DTM.getStringValue(SAX2DTM.java:1209)
	at org.apache.xpath.objects.XRTreeFrag.str(XRTreeFrag.java:280)
	at
org.apache.xpath.functions.FuncSubstringBefore.execute(FuncSubstringBefore.java:87)
	at org.apache.xpath.XPath.execute(XPath.java:318)
	at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:311)
	at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:282)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	...
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:177)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:177)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:177)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
	at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:279)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:164)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:159)
	at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:422)
	at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:178)
	at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2243)
	at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2069)
	at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
	at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:634)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
	at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)

The problem seems not to happen any more under neither form if I change the
following method of org.apache.xml.utils.SuballocatedIntVector, instead of:

  public int elementAt(int i)
  {
    // This is actually a significant optimization!
    if(i<m_blocksize)
      return m_map0[i];

    return m_map[i>>>m_SHIFT][i&m_MASK];
  }

I removed the optimization like this:

  public int elementAt(int i)
  {
    return m_map[i>>>m_SHIFT][i&m_MASK];
  }

and the problem disappeared.


---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-dev-help@xml.apache.org