DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15459>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15459

Recursion stack overflow

[EMAIL PROTECTED] changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID



------- Additional Comments From [EMAIL PROTECTED]  2002-12-18 06:42 -------
The infinite recursion is in the last template:

<xsl:template match="node()" mode="abstract-out">
    <xsl:param name="count" select="0"/>
    <xsl:if test="$count &lt; 200">
        <xsl:choose>
            <xsl:when test="following-sibling::node()">
                <xsl:apply-templates select="following-sibling::node()[1]" 
mode="abstract">
                    <xsl:with-param name="count" select="$count"/>
                </xsl:apply-templates>
            </xsl:when>
            <xsl:when test="..">
                <xsl:apply-templates select=".." mode="abstract-out">
                    <xsl:with-param name="count" select="$count"/>
                </xsl:apply-templates>
            </xsl:when>
        </xsl:choose>
    </xsl:if>
</xsl:template>

When you select "..", you select the root, which invokes the built-in template 
for the root, which starts the whole process over again.  Although you have a 
template for the root, it does not have a mode attribute, so it is not 
instantiated.

I added the following two templates to your stylesheet:

    <xsl:template match="/" mode="abstract"/>

    <xsl:template match="/" mode="abstract-out"/>

which stop the processing when the root is encountered during one of the two 
modes.  I suspect this is what you want, but I'm not sure.

Reply via email to