Bug #3069
closed[Saxon 9.7] Internal Saxon error: local variable encountered whose binding has been deleted
100%
Description
Hi,
We are getting an internal Saxon error when trying to run a stylesheet, which we never encountered with previous Saxon releases (we were using Saxon-EE 9.5.1.5J before).
The error is:
Internal Saxon error: local variable encountered whose binding has been deleted
I reproduced the bug in the attached files.
Basically, we have a main stylesheet (testCase.xsl) which imports a lot of functions (lotsOfFunctions.xsl). Whether theses functions are actually called or not does not seems to be the issue.
When trying to run the template testCase with Saxon-EE 9.7.0.13J, we are getting the error below :
*** Bad parent pointer found in 0 at 21 ***
*** Bad parent pointer found in 0 at 21 ***
*** Internal Saxon error: local variable encountered whose binding has been deleted
Variable name: fctstr
Line number of reference: 21 in file:/C:/testCase.xsl
Line number of declaration: 31 in file:/C:/testCase.xsl
DECLARATION:
<?xml version="1.0" encoding="utf-8"?>
<let vn="20" baseUri="file:/C:/testCase.xsl" ns="xs=http://www.w3.org/2001/XMLSchema xsl=http://www.w3.org/1999/XSL/Transform els=http://www.lefebvre-sarrut.eu/ns/els xd=http://www.oxygenxml.com/ns/doc/xsl" line="31" var="fctstr" as="xs:string" slot="-999" eval="-1">
<varRef name="fctstr1" slot="0"/>
<switch line="21">
<varRef role="value" line="31" name="fctstr1" slot="0"/>
<case>
<str val="b"/>
<int val="2"/>
</case>
<case>
<str val="c"/>
<int val="3"/>
</case>
<case>
<str val="a"/>
<int val="1"/>
</case>
<int role="default" val="0"/>
</switch>
</let>
java.lang.IllegalStateException: *** Internal Saxon error: local variable encountered whose binding has been deleted
at net.sf.saxon.expr.parser.ExpressionTool.allocateSlots(ExpressionTool.java:785)
at net.sf.saxon.expr.parser.ExpressionTool.allocateSlots(ExpressionTool.java:794)
at net.sf.saxon.expr.parser.ExpressionTool.allocateSlots(ExpressionTool.java:794)
at net.sf.saxon.expr.parser.ExpressionTool.allocateSlots(ExpressionTool.java:794)
at net.sf.saxon.expr.parser.ExpressionTool.allocateSlots(ExpressionTool.java:794)
at net.sf.saxon.style.StyleElement.allocateLocalSlots(StyleElement.java:1586)
at net.sf.saxon.style.XSLFunction.optimize(XSLFunction.java:440)
at net.sf.saxon.style.PrincipalStylesheetModule.compile(PrincipalStylesheetModule.java:1208)
at net.sf.saxon.style.Compilation.compilePackage(Compilation.java:264)
at net.sf.saxon.style.StylesheetModule.loadStylesheet(StylesheetModule.java:260)
at net.sf.saxon.style.Compilation.compileSingletonPackage(Compilation.java:101)
at net.sf.saxon.s9api.XsltCompiler.compile(XsltCompiler.java:859)
at net.sf.saxon.Transform.doTransform(Transform.java:727)
at net.sf.saxon.Transform.main(Transform.java:77)
Fatal error during transformation: java.lang.IllegalStateException: *** Internal Saxon error: local variable encountered whose binding has been deleted
The weird thing is that if I comment some functions in lotsOfFunctions.xsl, the error is gone.
Thank you for your time investigating this!
Files
Please register to edit this issue