Menu

#203 saxon:evaluate() fails in for-each loop

v7.9.1
closed
5
2012-10-08
2004-04-01
Michael Kay
No

Following the fixes applied to saxon:evaluate() in
7.9.1, a dynamically evaluated expression that (a)
contains local variables, and (b) is used in an
xsl:for-each, or another context where lazy evaluation
occurs, loses access to its own local variables and
typically fails with a NullPointerException trying to
reference a variable.

The source code fix is in Evaluate.java line 160, change

SequenceIterator result = pexpr.expression.iterate(c2);

to:

SequenceIterator result =
ExpressionTool.lazyEvaluate(pexpr.expression,
c2).iterate(c2);

Test case added: saxon76

MK

Discussion