Bug #4050
closedInternal error : net.sf.saxon.value.StringValue cannot be cast to net.sf.saxon.om.NodeInfo
100%
Description
The error occurs when compiling the xslt-compiler-in-xslt starting with a SEF file produced by the xslt-compiler-in-java.
That is, transform
-xsl:XSLT-SEF-compiler.xsl -s:XSLT-SEF-compiler.xsl -im:compile-complete -export:Users/mike/Desktop/temp/compiler.sef
then
-xsl:/Users/mike/Desktop/temp/compiler.sef -s:XSLT-SEF-compiler.xsl -im:compile-complete -o:/Users/mike/Desktop/temp/compiler2.sef -t --generateByteCode:off
Updated by Michael Kay over 5 years ago
The function in question performs indexed access to the sequence supplied as the second argument. When this happens, and the supplied value is not already an indexed value, the code for evaluating an IndexedFilterExpression modifies the argument value in-situ to be an IndexedValue equivalent to the value supplied. It is identifying the stack location to overwrite based on the slot number held in the UserFunctionParameter object referenced from the LocalVariableReference. But the slot number in the UserFunctionParameter is not being set up when a SEF file is reloaded, so the wrong stack slot is overwritten.
Updated by Michael Kay over 5 years ago
- Category set to XSLT export
- Status changed from New to Resolved
- Priority changed from Low to Normal
- Applies to branch 9.9 added
- Fix Committed on Branch 9.9 added
Resolved in the package loader by ensuring that the slot numbers are initialized properly.
Updated by O'Neil Delpratt about 5 years ago
- % Done changed from 0 to 100
- Fixed in Maintenance Release 9.9.1.1 added
Bug fix applied to the Saxon 9.9.1.1 maintenance release.
Updated by O'Neil Delpratt about 5 years ago
- Status changed from Resolved to Closed
Please register to edit this issue