#92 Cannot create intensional node-set

v6.5.2
closed
Michael Kay
5
2014-08-19
2002-08-29
Michael Kay
No

The error message is:

java.lang.UnsupportedOperationException: Cannot
create intensional node-set with context dependencies

This is always an internal Saxon error. It indicates that
the context has not been saved properly when doing
lazy evaluation of an expression returning a node-set.

This particular example of the problem occurs when the
select expression of <xsl:variable> is a path expression
that (a) is not statically recognized as a single-
document path expression (for example, because it
starts with a call on the document() function), and (b)
contains a call to the key() function within a predicate.
(This means that Saxon has to cater for the possibility
that different calls of the key() function will access
different documents).

Problem reported by Michael Leditschke
[mike@ammd.com.au]

Applies to 6.5.2 (and probably to earlier releases); the
bug is not present in 7.2 (and probably not present in
7.1).

Test case added: idky24

Source code fixed: in
com.icl.saxon.expr.PathExpression, method
getDependencies(), at line 131, change the code

dependencies |= (exp.getDependencies() &
(Context.XSLT_CONTEXT |
Context.CONTEXT_DOCUMENT));

to read:

dependencies |= (exp.getDependencies() &
Context.XSLT_CONTEXT);

Michael Kay

Discussion