Actions
Bug #3200
closedStackOverflow (infinite recursion in optimizer)
Start date:
2017-04-13
Due date:
% Done:
100%
Estimated time:
Legacy ID:
Applies to branch:
9.7
Fix Committed on Branch:
9.7, trunk
Fixed in Maintenance Release:
Platforms:
Description
The XSLT looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:template match="/">
<results>
<xsl:for-each select="1 to 3">
<xsl:variable name="pos" select="position()"/>
<xsl:for-each select="7 to 9">
<xsl:element name="test">
<xsl:attribute name="xml:id" select="concat('hi', string($pos))"/>
</xsl:element>
</xsl:for-each>
</xsl:for-each>
</results>
</xsl:template>
</xsl:stylesheet>
and if it is applied to any XML you get this:
java.lang.StackOverflowError
at java.util.AbstractList.iterator(Unknown Source)
at net.sf.saxon.expr.Expression.optimizeChildren(Expression.java:514)
at net.sf.saxon.expr.FunctionCall.optimize(FunctionCall.java:248)
at net.sf.saxon.expr.SystemFunctionCall.optimize(SystemFunctionCall.java:158)
at net.sf.saxon.expr.Operand.optimize(Operand.java:200)
at net.sf.saxon.expr.Expression.optimizeChildren(Expression.java:515)
at net.sf.saxon.expr.instruct.SimpleNodeConstructor.optimize(SimpleNodeConstructor.java:163)
at net.sf.saxon.expr.Operand.optimize(Operand.java:200)
at net.sf.saxon.expr.Expression.optimizeChildren(Expression.java:515)
at net.sf.saxon.expr.instruct.ParentNodeConstructor.optimize(ParentNodeConstructor.java:206)
at net.sf.saxon.expr.instruct.FixedElement.optimize(FixedElement.java:108)
at net.sf.saxon.expr.Operand.optimize(Operand.java:200)
at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:248)
at net.sf.saxon.expr.Operand.optimize(Operand.java:200)
at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:311)
at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:273)
at net.sf.saxon.expr.Operand.optimize(Operand.java:200)
at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:311)
at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:273)
at net.sf.saxon.expr.Operand.optimize(Operand.java:200)
at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:311)
at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:273)
at net.sf.saxon.expr.Operand.optimize(Operand.java:200)
at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:311)
at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:273)
at net.sf.saxon.expr.Operand.optimize(Operand.java:200)
at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:311)
at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:273)
at net.sf.saxon.expr.Operand.optimize(Operand.java:200)
at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:311)
at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:273)
at net.sf.saxon.expr.Operand.optimize(Operand.java:200)
at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:311)
at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:273)
at net.sf.saxon.expr.Operand.optimize(Operand.java:200)
at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:311)
at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:273)
at net.sf.saxon.expr.Operand.optimize(Operand.java:200)
at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:311)
at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:273)
at net.sf.saxon.expr.Operand.optimize(Operand.java:200)
Please register to edit this issue
Actions