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

Reply via email to