Re: [basex-talk] Bug? Local variable has not been allocated a stack frame slot
Bummer, it's very tricky to isolate/repro in a minimal case. At the moment don't have the time to pursue this further. Maybe later. --Marc On Wed, Apr 8, 2015 at 2:27 PM, Marc van Grootel marc.van.groo...@gmail.com wrote: Sure, I'm going to try this evening. If it's indeed Saxon we would probably need one anyways. --Marc On Wed, Apr 8, 2015 at 2:23 PM, Christian Grün christian.gr...@gmail.com wrote: Hi Marc, I would tend to say it's a Saxon issue. We have no Saxon-specific code in our XSLT functions, and the complete stack trace seems to indicate that something is going wrong in Saxon. – However, I can also have a look at this if you send me an SSCCE for that bug. Best, Christian On Wed, Apr 8, 2015 at 2:18 PM, Marc van Grootel marc.van.groo...@gmail.com wrote: Hi, I have hit something which is related to Saxon XSLT. The XSLT in question runs fine standalone (via Oxygen). But when hooked up via RESTXQ I get the type of tracebacks (i've listed all traceback from where it enters Saxon code below). Although I don't have a full repro case I did manage to make it run by modyfing the expr inside the group-starting-with. The code below uses a local variable $i in a predicate. This causes the error below. xsl:for-each-group select=$v group-starting-with=v[xs:integer(@c) eq $i][text()] ... /xsl:for-each-group The code below runs without problems. Here it's not accessing the local variable inside the grouping attribute. xsl:for-each-group select=$v group-starting-with=v[text()] ... /xsl:for-each-group Any idea if this is Saxon or BaseX issue? --Marc This is the top of the traceback. Version: BaseX 8.1 Java: Oracle Corporation, 1.7.0_25 OS: Windows 7, amd64 Stack Trace: java.lang.ArrayIndexOutOfBoundsException: Local variable $i has not been allocated a stack frame slot at net.sf.saxon.expr.LocalVariableReference.evaluateVariable(LocalVariableReference.java:102) at net.sf.saxon.expr.VariableReference.iterate(VariableReference.java:453) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:173) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:36) at net.sf.saxon.expr.ValueComparison.effectiveBooleanValue(ValueComparison.java:692) at net.sf.saxon.pattern.PatternWithPredicate.matches(PatternWithPredicate.java:139) at net.sf.saxon.pattern.PatternWithPredicate.matches(PatternWithPredicate.java:131) at net.sf.saxon.expr.sort.GroupStartingIterator.advance(GroupStartingIterator.java:47) at net.sf.saxon.expr.sort.GroupMatchingIterator.next(GroupMatchingIterator.java:75) at net.sf.saxon.expr.instruct.ForEachGroup.processLeavingTail(ForEachGroup.java:743) at net.sf.saxon.expr.instruct.Choose.processLeavingTail(Choose.java:875) at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:138) at net.sf.saxon.expr.instruct.UserFunction.process(UserFunction.java:382) at net.sf.saxon.expr.UserFunctionCall.process(UserFunctionCall.java:507) at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:662) at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:138) at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:431) at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:373) at net.sf.saxon.expr.instruct.Template.applyLeavingTail(Template.java:239) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:1057) at net.sf.saxon.expr.instruct.ApplyTemplates$ApplyTemplatesPackage.processLeavingTail(ApplyTemplates.java:519) at net.sf.saxon.expr.instruct.CallTemplate.process(CallTemplate.java:349) at net.sf.saxon.expr.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:323) at net.sf.saxon.expr.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:56) at net.sf.saxon.expr.parser.ExpressionTool.evaluate(ExpressionTool.java:328) at net.sf.saxon.expr.LetExpression.eval(LetExpression.java:398) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:604) at net.sf.saxon.expr.instruct.Choose.processLeavingTail(Choose.java:875) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:613) at net.sf.saxon.expr.instruct.Choose.processLeavingTail(Choose.java:875) at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:660) at net.sf.saxon.expr.instruct.Template.expand(Template.java:258) at net.sf.saxon.expr.instruct.CallTemplate$CallTemplatePackage.processLeavingTail(CallTemplate.java:536) at net.sf.saxon.Controller.transformDocument(Controller.java:2082) at
[basex-talk] Bug? Local variable has not been allocated a stack frame slot
Hi, I have hit something which is related to Saxon XSLT. The XSLT in question runs fine standalone (via Oxygen). But when hooked up via RESTXQ I get the type of tracebacks (i've listed all traceback from where it enters Saxon code below). Although I don't have a full repro case I did manage to make it run by modyfing the expr inside the group-starting-with. The code below uses a local variable $i in a predicate. This causes the error below. xsl:for-each-group select=$v group-starting-with=v[xs:integer(@c) eq $i][text()] ... /xsl:for-each-group The code below runs without problems. Here it's not accessing the local variable inside the grouping attribute. xsl:for-each-group select=$v group-starting-with=v[text()] ... /xsl:for-each-group Any idea if this is Saxon or BaseX issue? --Marc This is the top of the traceback. Version: BaseX 8.1 Java: Oracle Corporation, 1.7.0_25 OS: Windows 7, amd64 Stack Trace: java.lang.ArrayIndexOutOfBoundsException: Local variable $i has not been allocated a stack frame slot at net.sf.saxon.expr.LocalVariableReference.evaluateVariable(LocalVariableReference.java:102) at net.sf.saxon.expr.VariableReference.iterate(VariableReference.java:453) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:173) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:36) at net.sf.saxon.expr.ValueComparison.effectiveBooleanValue(ValueComparison.java:692) at net.sf.saxon.pattern.PatternWithPredicate.matches(PatternWithPredicate.java:139) at net.sf.saxon.pattern.PatternWithPredicate.matches(PatternWithPredicate.java:131) at net.sf.saxon.expr.sort.GroupStartingIterator.advance(GroupStartingIterator.java:47) at net.sf.saxon.expr.sort.GroupMatchingIterator.next(GroupMatchingIterator.java:75) at net.sf.saxon.expr.instruct.ForEachGroup.processLeavingTail(ForEachGroup.java:743) at net.sf.saxon.expr.instruct.Choose.processLeavingTail(Choose.java:875) at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:138) at net.sf.saxon.expr.instruct.UserFunction.process(UserFunction.java:382) at net.sf.saxon.expr.UserFunctionCall.process(UserFunctionCall.java:507) at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:662) at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:138) at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:431) at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:373) at net.sf.saxon.expr.instruct.Template.applyLeavingTail(Template.java:239) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:1057) at net.sf.saxon.expr.instruct.ApplyTemplates$ApplyTemplatesPackage.processLeavingTail(ApplyTemplates.java:519) at net.sf.saxon.expr.instruct.CallTemplate.process(CallTemplate.java:349) at net.sf.saxon.expr.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:323) at net.sf.saxon.expr.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:56) at net.sf.saxon.expr.parser.ExpressionTool.evaluate(ExpressionTool.java:328) at net.sf.saxon.expr.LetExpression.eval(LetExpression.java:398) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:604) at net.sf.saxon.expr.instruct.Choose.processLeavingTail(Choose.java:875) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:613) at net.sf.saxon.expr.instruct.Choose.processLeavingTail(Choose.java:875) at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:660) at net.sf.saxon.expr.instruct.Template.expand(Template.java:258) at net.sf.saxon.expr.instruct.CallTemplate$CallTemplatePackage.processLeavingTail(CallTemplate.java:536) at net.sf.saxon.Controller.transformDocument(Controller.java:2082) at net.sf.saxon.Controller.transform(Controller.java:1903) at org.basex.query.func.xslt.XsltTransform.transform
Re: [basex-talk] Bug? Local variable has not been allocated a stack frame slot
Hi Marc, I would tend to say it's a Saxon issue. We have no Saxon-specific code in our XSLT functions, and the complete stack trace seems to indicate that something is going wrong in Saxon. – However, I can also have a look at this if you send me an SSCCE for that bug. Best, Christian On Wed, Apr 8, 2015 at 2:18 PM, Marc van Grootel marc.van.groo...@gmail.com wrote: Hi, I have hit something which is related to Saxon XSLT. The XSLT in question runs fine standalone (via Oxygen). But when hooked up via RESTXQ I get the type of tracebacks (i've listed all traceback from where it enters Saxon code below). Although I don't have a full repro case I did manage to make it run by modyfing the expr inside the group-starting-with. The code below uses a local variable $i in a predicate. This causes the error below. xsl:for-each-group select=$v group-starting-with=v[xs:integer(@c) eq $i][text()] ... /xsl:for-each-group The code below runs without problems. Here it's not accessing the local variable inside the grouping attribute. xsl:for-each-group select=$v group-starting-with=v[text()] ... /xsl:for-each-group Any idea if this is Saxon or BaseX issue? --Marc This is the top of the traceback. Version: BaseX 8.1 Java: Oracle Corporation, 1.7.0_25 OS: Windows 7, amd64 Stack Trace: java.lang.ArrayIndexOutOfBoundsException: Local variable $i has not been allocated a stack frame slot at net.sf.saxon.expr.LocalVariableReference.evaluateVariable(LocalVariableReference.java:102) at net.sf.saxon.expr.VariableReference.iterate(VariableReference.java:453) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:173) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:36) at net.sf.saxon.expr.ValueComparison.effectiveBooleanValue(ValueComparison.java:692) at net.sf.saxon.pattern.PatternWithPredicate.matches(PatternWithPredicate.java:139) at net.sf.saxon.pattern.PatternWithPredicate.matches(PatternWithPredicate.java:131) at net.sf.saxon.expr.sort.GroupStartingIterator.advance(GroupStartingIterator.java:47) at net.sf.saxon.expr.sort.GroupMatchingIterator.next(GroupMatchingIterator.java:75) at net.sf.saxon.expr.instruct.ForEachGroup.processLeavingTail(ForEachGroup.java:743) at net.sf.saxon.expr.instruct.Choose.processLeavingTail(Choose.java:875) at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:138) at net.sf.saxon.expr.instruct.UserFunction.process(UserFunction.java:382) at net.sf.saxon.expr.UserFunctionCall.process(UserFunctionCall.java:507) at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:662) at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:138) at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:431) at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:373) at net.sf.saxon.expr.instruct.Template.applyLeavingTail(Template.java:239) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:1057) at net.sf.saxon.expr.instruct.ApplyTemplates$ApplyTemplatesPackage.processLeavingTail(ApplyTemplates.java:519) at net.sf.saxon.expr.instruct.CallTemplate.process(CallTemplate.java:349) at net.sf.saxon.expr.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:323) at net.sf.saxon.expr.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:56) at net.sf.saxon.expr.parser.ExpressionTool.evaluate(ExpressionTool.java:328) at net.sf.saxon.expr.LetExpression.eval(LetExpression.java:398) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:604) at net.sf.saxon.expr.instruct.Choose.processLeavingTail(Choose.java:875) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:613) at net.sf.saxon.expr.instruct.Choose.processLeavingTail(Choose.java:875) at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:660) at net.sf.saxon.expr.instruct.Template.expand(Template.java:258) at net.sf.saxon.expr.instruct.CallTemplate$CallTemplatePackage.processLeavingTail(CallTemplate.java:536) at net.sf.saxon.Controller.transformDocument(Controller.java:2082) at net.sf.saxon.Controller.transform(Controller.java:1903) at org.basex.query.func.xslt.XsltTransform.transform
Re: [basex-talk] Bug? Local variable has not been allocated a stack frame slot
Sure, I'm going to try this evening. If it's indeed Saxon we would probably need one anyways. --Marc On Wed, Apr 8, 2015 at 2:23 PM, Christian Grün christian.gr...@gmail.com wrote: Hi Marc, I would tend to say it's a Saxon issue. We have no Saxon-specific code in our XSLT functions, and the complete stack trace seems to indicate that something is going wrong in Saxon. – However, I can also have a look at this if you send me an SSCCE for that bug. Best, Christian On Wed, Apr 8, 2015 at 2:18 PM, Marc van Grootel marc.van.groo...@gmail.com wrote: Hi, I have hit something which is related to Saxon XSLT. The XSLT in question runs fine standalone (via Oxygen). But when hooked up via RESTXQ I get the type of tracebacks (i've listed all traceback from where it enters Saxon code below). Although I don't have a full repro case I did manage to make it run by modyfing the expr inside the group-starting-with. The code below uses a local variable $i in a predicate. This causes the error below. xsl:for-each-group select=$v group-starting-with=v[xs:integer(@c) eq $i][text()] ... /xsl:for-each-group The code below runs without problems. Here it's not accessing the local variable inside the grouping attribute. xsl:for-each-group select=$v group-starting-with=v[text()] ... /xsl:for-each-group Any idea if this is Saxon or BaseX issue? --Marc This is the top of the traceback. Version: BaseX 8.1 Java: Oracle Corporation, 1.7.0_25 OS: Windows 7, amd64 Stack Trace: java.lang.ArrayIndexOutOfBoundsException: Local variable $i has not been allocated a stack frame slot at net.sf.saxon.expr.LocalVariableReference.evaluateVariable(LocalVariableReference.java:102) at net.sf.saxon.expr.VariableReference.iterate(VariableReference.java:453) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:173) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:36) at net.sf.saxon.expr.ValueComparison.effectiveBooleanValue(ValueComparison.java:692) at net.sf.saxon.pattern.PatternWithPredicate.matches(PatternWithPredicate.java:139) at net.sf.saxon.pattern.PatternWithPredicate.matches(PatternWithPredicate.java:131) at net.sf.saxon.expr.sort.GroupStartingIterator.advance(GroupStartingIterator.java:47) at net.sf.saxon.expr.sort.GroupMatchingIterator.next(GroupMatchingIterator.java:75) at net.sf.saxon.expr.instruct.ForEachGroup.processLeavingTail(ForEachGroup.java:743) at net.sf.saxon.expr.instruct.Choose.processLeavingTail(Choose.java:875) at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:138) at net.sf.saxon.expr.instruct.UserFunction.process(UserFunction.java:382) at net.sf.saxon.expr.UserFunctionCall.process(UserFunctionCall.java:507) at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:662) at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:138) at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:431) at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:373) at net.sf.saxon.expr.instruct.Template.applyLeavingTail(Template.java:239) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:1057) at net.sf.saxon.expr.instruct.ApplyTemplates$ApplyTemplatesPackage.processLeavingTail(ApplyTemplates.java:519) at net.sf.saxon.expr.instruct.CallTemplate.process(CallTemplate.java:349) at net.sf.saxon.expr.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:323) at net.sf.saxon.expr.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:56) at net.sf.saxon.expr.parser.ExpressionTool.evaluate(ExpressionTool.java:328) at net.sf.saxon.expr.LetExpression.eval(LetExpression.java:398) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:604) at net.sf.saxon.expr.instruct.Choose.processLeavingTail(Choose.java:875) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:613) at net.sf.saxon.expr.instruct.Choose.processLeavingTail(Choose.java:875) at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:660) at net.sf.saxon.expr.instruct.Template.expand(Template.java:258) at net.sf.saxon.expr.instruct.CallTemplate$CallTemplatePackage.processLeavingTail(CallTemplate.java:536) at net.sf.saxon.Controller.transformDocument(Controller.java:2082) at net.sf.saxon.Controller.transform(Controller.java:1903) at org.basex.query.func.xslt.XsltTransform.transform -- --Marc