Project

Profile

Help

Bug #6095

closed

accumulator-rule match with variables leads to java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0

Added by Martin Honnen over 1 year ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
XSLT conformance
Sprint/Milestone:
-
Start date:
2023-06-24
Due date:
% Done:

100%

Estimated time:
Legacy ID:
Applies to branch:
10, 11, 12
Fix Committed on Branch:
11, 12, trunk
Fixed in Maintenance Release:
Platforms:
.NET, Java

Description

While playing with some different match patterns for an accumulator I have run into an internal error in Saxon (tested with Java HE 12.2, 11.5 and 10.9 as well as with SaxonCS 12.2 and 11.5):

XSLT:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="3.0"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  exclude-result-prefixes="#all"
  expand-text="yes">
  
  <xsl:param name="limit" as="xs:integer" select="5"/>

  <xsl:accumulator name="node-count" as="xs:integer" initial-value="0">
    <xsl:accumulator-rule match="node()[$value le $limit or $value gt $limit]" select="$value + 1"/>
  </xsl:accumulator>

  <xsl:mode on-no-match="shallow-copy" use-accumulators="#all"/>

  <xsl:template match="node()">
    <xsl:message select="accumulator-before('node-count')"/>
    <xsl:next-match/>
  </xsl:template>

  <xsl:template match="/" name="xsl:initial-template">
    <xsl:copy>
      <xsl:apply-templates/>
      <xsl:comment>Run with {system-property('xsl:product-name')} {system-property('xsl:product-version')} at {current-dateTime()}</xsl:comment>
    </xsl:copy>
  </xsl:template>

</xsl:stylesheet>

XML (doesn't probably matter):

<?xml version="1.0" encoding="utf-8"?>
<html lang="en">
  <head>
    <title>XML sample1</title>
  </head>
  <body>
    <section>
      <h1>Test</h1>
      <section>
        <h2>Test sample</h2>
        <ul>
          <li>list item 1</li>
          <li>list item 2</li>
          <li>list item 3</li>
        </ul>
      </section>
    </section>
  </body>
</html>

Stack trace with 12.2 Java HE:

java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
        at net.sf.saxon.expr.XPathContextMinor.evaluateLocalVariable(XPathContextMinor.java:371)
        at net.sf.saxon.expr.SuppliedParameterReference$SuppliedParameterReferenceElaborator.lambda$elaborateForItem$2(SuppliedParameterReference.java:309)
        at net.sf.saxon.expr.ValueComparison$ValueComparisonElaborator.lambda$elaborateForBoolean$4(ValueComparison.java:607)
        at net.sf.saxon.expr.OrExpression$OrElaborator.lambda$elaborateForBoolean$0(OrExpression.java:173)
        at net.sf.saxon.pattern.BasePatternWithPredicate.matchesPredicate(BasePatternWithPredicate.java:137)
        at net.sf.saxon.pattern.BasePatternWithPredicate.matches(BasePatternWithPredicate.java:125)
        at net.sf.saxon.trans.rules.Rule.matches(Rule.java:239)
        at net.sf.saxon.trans.SimpleMode.ruleMatches(SimpleMode.java:758)
        at net.sf.saxon.trans.SimpleMode.searchRuleChain(SimpleMode.java:732)
        at net.sf.saxon.trans.SimpleMode.findBestRuleForNodeInfo(SimpleMode.java:640)
        at net.sf.saxon.trans.SimpleMode.getRule(SimpleMode.java:550)
        at net.sf.saxon.expr.accum.AccumulatorData.visit(AccumulatorData.java:106)
        at net.sf.saxon.expr.accum.AccumulatorData.visit(AccumulatorData.java:112)
        at net.sf.saxon.expr.accum.AccumulatorData.buildIndex(AccumulatorData.java:74)
        at net.sf.saxon.expr.accum.AccumulatorManager.getAccumulatorData(AccumulatorManager.java:127)
        at net.sf.saxon.functions.AccumulatorFn.getAccumulatorValue(AccumulatorFn.java:61)
        at net.sf.saxon.functions.AccumulatorFn.call(AccumulatorFn.java:154)
        at net.sf.saxon.expr.SystemFunctionCall$SystemFunctionCallElaborator.lambda$elaborateForPull$1(SystemFunctionCall.java:605)
        at net.sf.saxon.expr.elab.PullElaborator.lambda$elaborateForPush$0(PullElaborator.java:38)
        at net.sf.saxon.expr.instruct.MessageInstr$MessageInstrElaborator.lambda$elaborateForPush$0(MessageInstr.java:337)
        at net.sf.saxon.expr.instruct.Block$BlockElaborator.lambda$elaborateForPush$1(Block.java:851)
        at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:393)
        at net.sf.saxon.trans.Mode.handleRuleNotNull(Mode.java:568)
        at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:502)
        at net.sf.saxon.expr.instruct.ApplyTemplates$ApplyTemplatesElaborator.lambda$elaborateForPush$1(ApplyTemplates.java:650)
        at net.sf.saxon.expr.instruct.Block$BlockElaborator.lambda$elaborateForPush$1(Block.java:851)
        at net.sf.saxon.expr.instruct.Copy$CopyElaborator.lambda$elaborateForPush$0(Copy.java:645)
        at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:393)
        at net.sf.saxon.trans.Mode.handleRuleNotNull(Mode.java:568)
        at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:502)
        at net.sf.saxon.trans.XsltController.applyTemplates(XsltController.java:684)
        at net.sf.saxon.s9api.AbstractXsltTransformer.applyTemplatesToSource(AbstractXsltTransformer.java:427)
        at net.sf.saxon.s9api.Xslt30Transformer.applyTemplates(Xslt30Transformer.java:306)
        at net.sf.saxon.Transform.processFile(Transform.java:1389)
        at net.sf.saxon.Transform.doTransform(Transform.java:879)
        at net.sf.saxon.Transform.main(Transform.java:83)
java.lang.RuntimeException: Internal error evaluating template rule  at line 16 in module file:/C:/Users/marti/OneDrive/Documents/xslt/blog-xslt-3-by-example/accumulator-message/./sheet8.xsl
        at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403)
        at net.sf.saxon.trans.Mode.handleRuleNotNull(Mode.java:568)
        at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:502)
        at net.sf.saxon.expr.instruct.ApplyTemplates$ApplyTemplatesElaborator.lambda$elaborateForPush$1(ApplyTemplates.java:650)
        at net.sf.saxon.expr.instruct.Block$BlockElaborator.lambda$elaborateForPush$1(Block.java:851)
        at net.sf.saxon.expr.instruct.Copy$CopyElaborator.lambda$elaborateForPush$0(Copy.java:645)
        at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:393)
        at net.sf.saxon.trans.Mode.handleRuleNotNull(Mode.java:568)
        at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:502)
        at net.sf.saxon.trans.XsltController.applyTemplates(XsltController.java:684)
        at net.sf.saxon.s9api.AbstractXsltTransformer.applyTemplatesToSource(AbstractXsltTransformer.java:427)
        at net.sf.saxon.s9api.Xslt30Transformer.applyTemplates(Xslt30Transformer.java:306)
        at net.sf.saxon.Transform.processFile(Transform.java:1389)
        at net.sf.saxon.Transform.doTransform(Transform.java:879)
        at net.sf.saxon.Transform.main(Transform.java:83)
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
        at net.sf.saxon.expr.XPathContextMinor.evaluateLocalVariable(XPathContextMinor.java:371)
        at net.sf.saxon.expr.SuppliedParameterReference$SuppliedParameterReferenceElaborator.lambda$elaborateForItem$2(SuppliedParameterReference.java:309)
        at net.sf.saxon.expr.ValueComparison$ValueComparisonElaborator.lambda$elaborateForBoolean$4(ValueComparison.java:607)
        at net.sf.saxon.expr.OrExpression$OrElaborator.lambda$elaborateForBoolean$0(OrExpression.java:173)
        at net.sf.saxon.pattern.BasePatternWithPredicate.matchesPredicate(BasePatternWithPredicate.java:137)
        at net.sf.saxon.pattern.BasePatternWithPredicate.matches(BasePatternWithPredicate.java:125)
        at net.sf.saxon.trans.rules.Rule.matches(Rule.java:239)
        at net.sf.saxon.trans.SimpleMode.ruleMatches(SimpleMode.java:758)
        at net.sf.saxon.trans.SimpleMode.searchRuleChain(SimpleMode.java:732)
        at net.sf.saxon.trans.SimpleMode.findBestRuleForNodeInfo(SimpleMode.java:640)
        at net.sf.saxon.trans.SimpleMode.getRule(SimpleMode.java:550)
        at net.sf.saxon.expr.accum.AccumulatorData.visit(AccumulatorData.java:106)
        at net.sf.saxon.expr.accum.AccumulatorData.visit(AccumulatorData.java:112)
        at net.sf.saxon.expr.accum.AccumulatorData.buildIndex(AccumulatorData.java:74)
        at net.sf.saxon.expr.accum.AccumulatorManager.getAccumulatorData(AccumulatorManager.java:127)
        at net.sf.saxon.functions.AccumulatorFn.getAccumulatorValue(AccumulatorFn.java:61)
        at net.sf.saxon.functions.AccumulatorFn.call(AccumulatorFn.java:154)
        at net.sf.saxon.expr.SystemFunctionCall$SystemFunctionCallElaborator.lambda$elaborateForPull$1(SystemFunctionCall.java:605)
        at net.sf.saxon.expr.elab.PullElaborator.lambda$elaborateForPush$0(PullElaborator.java:38)
        at net.sf.saxon.expr.instruct.MessageInstr$MessageInstrElaborator.lambda$elaborateForPush$0(MessageInstr.java:337)
        at net.sf.saxon.expr.instruct.Block$BlockElaborator.lambda$elaborateForPush$1(Block.java:851)
        at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:393)
        ... 14 more
java.lang.RuntimeException: Internal error evaluating template rule  at line 21 in module file:/C:/Users/marti/OneDrive/Documents/xslt/blog-xslt-3-by-example/accumulator-message/./sheet8.xsl
        at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403)
        at net.sf.saxon.trans.Mode.handleRuleNotNull(Mode.java:568)
        at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:502)
        at net.sf.saxon.trans.XsltController.applyTemplates(XsltController.java:684)
        at net.sf.saxon.s9api.AbstractXsltTransformer.applyTemplatesToSource(AbstractXsltTransformer.java:427)
        at net.sf.saxon.s9api.Xslt30Transformer.applyTemplates(Xslt30Transformer.java:306)
        at net.sf.saxon.Transform.processFile(Transform.java:1389)
        at net.sf.saxon.Transform.doTransform(Transform.java:879)
        at net.sf.saxon.Transform.main(Transform.java:83)
Caused by: java.lang.RuntimeException: Internal error evaluating template rule  at line 16 in module file:/C:/Users/marti/OneDrive/Documents/xslt/blog-xslt-3-by-example/accumulator-message/./sheet8.xsl
        at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403)
        at net.sf.saxon.trans.Mode.handleRuleNotNull(Mode.java:568)
        at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:502)
        at net.sf.saxon.expr.instruct.ApplyTemplates$ApplyTemplatesElaborator.lambda$elaborateForPush$1(ApplyTemplates.java:650)
        at net.sf.saxon.expr.instruct.Block$BlockElaborator.lambda$elaborateForPush$1(Block.java:851)
        at net.sf.saxon.expr.instruct.Copy$CopyElaborator.lambda$elaborateForPush$0(Copy.java:645)
        at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:393)
        ... 8 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
        at net.sf.saxon.expr.XPathContextMinor.evaluateLocalVariable(XPathContextMinor.java:371)
        at net.sf.saxon.expr.SuppliedParameterReference$SuppliedParameterReferenceElaborator.lambda$elaborateForItem$2(SuppliedParameterReference.java:309)
        at net.sf.saxon.expr.ValueComparison$ValueComparisonElaborator.lambda$elaborateForBoolean$4(ValueComparison.java:607)
        at net.sf.saxon.expr.OrExpression$OrElaborator.lambda$elaborateForBoolean$0(OrExpression.java:173)
        at net.sf.saxon.pattern.BasePatternWithPredicate.matchesPredicate(BasePatternWithPredicate.java:137)
        at net.sf.saxon.pattern.BasePatternWithPredicate.matches(BasePatternWithPredicate.java:125)
        at net.sf.saxon.trans.rules.Rule.matches(Rule.java:239)
        at net.sf.saxon.trans.SimpleMode.ruleMatches(SimpleMode.java:758)
        at net.sf.saxon.trans.SimpleMode.searchRuleChain(SimpleMode.java:732)
        at net.sf.saxon.trans.SimpleMode.findBestRuleForNodeInfo(SimpleMode.java:640)
        at net.sf.saxon.trans.SimpleMode.getRule(SimpleMode.java:550)
        at net.sf.saxon.expr.accum.AccumulatorData.visit(AccumulatorData.java:106)
        at net.sf.saxon.expr.accum.AccumulatorData.visit(AccumulatorData.java:112)
        at net.sf.saxon.expr.accum.AccumulatorData.buildIndex(AccumulatorData.java:74)
        at net.sf.saxon.expr.accum.AccumulatorManager.getAccumulatorData(AccumulatorManager.java:127)
        at net.sf.saxon.functions.AccumulatorFn.getAccumulatorValue(AccumulatorFn.java:61)
        at net.sf.saxon.functions.AccumulatorFn.call(AccumulatorFn.java:154)
        at net.sf.saxon.expr.SystemFunctionCall$SystemFunctionCallElaborator.lambda$elaborateForPull$1(SystemFunctionCall.java:605)
        at net.sf.saxon.expr.elab.PullElaborator.lambda$elaborateForPush$0(PullElaborator.java:38)
        at net.sf.saxon.expr.instruct.MessageInstr$MessageInstrElaborator.lambda$elaborateForPush$0(MessageInstr.java:337)
        at net.sf.saxon.expr.instruct.Block$BlockElaborator.lambda$elaborateForPush$1(Block.java:851)
        at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:393)
        ... 14 more
Fatal error during transformation: java.lang.RuntimeException: Internal error evaluating template rule  at line 21 in module file:/C:/Users/marti/OneDrive/Documents/xslt/blog-xslt-3-by-example/accumulator-message/./sheet8.xsl

Stacktrace of Saxon CS 12.2:

System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Saxon.Hej.expr.XPathContextMinor.evaluateLocalVariable(Int32 slot)
   at Saxon.Hej.expr.SuppliedParameterReference.SuppliedParameterReferenceElaborator.<>c__DisplayClass4_0.<elaborateForItem>b__0(XPathContext context)
   at Saxon.Hej.expr.ValueComparison.ValueComparisonElaborator.<>c__DisplayClass2_0.<elaborateForBoolean>b__1(XPathContext context)
   at Saxon.Hej.expr.OrExpression.OrElaborator.<>c__DisplayClass0_0.<elaborateForBoolean>b__0(XPathContext context)
   at Saxon.Hej.pattern.BasePatternWithPredicate.matchesPredicate(Item item, XPathContext context)
   at Saxon.Hej.pattern.BasePatternWithPredicate.matches(Item item, XPathContext context)
   at Saxon.Hej.trans.rules.Rule.matches(Item item, XPathContextMajor context)
   at Saxon.Hej.trans.SimpleMode.ruleMatches(Rule r, Item item, XPathContextMajor context, RuleSearchState pre)
   at Saxon.Hej.trans.SimpleMode.searchRuleChain(Item item, XPathContext context, Rule bestRule, RuleChain chain)
   at Saxon.Hej.trans.SimpleMode.findBestRuleForNodeInfo(NodeInfo node, XPathContext context)
   at Saxon.Hej.trans.SimpleMode.getRule(Item item, XPathContext context)
   at Saxon.Hej.expr.accum.AccumulatorData.visit(NodeInfo node, Sequence value, XPathContext context)
   at Saxon.Hej.expr.accum.AccumulatorData.visit(NodeInfo node, Sequence value, XPathContext context)
   at Saxon.Hej.expr.accum.AccumulatorData.buildIndex(NodeInfo doc, XPathContext context)
   at Saxon.Hej.expr.accum.AccumulatorManager.getAccumulatorData(TreeInfo doc, Accumulator acc, XPathContext context)
   at Saxon.Hej.functions.AccumulatorFn.getAccumulatorValue(String name, Phase phase, XPathContext context)
   at Saxon.Hej.functions.AccumulatorFn.call(XPathContext context, Sequence[] arguments)
   at Saxon.Hej.expr.SystemFunctionCall.SystemFunctionCallElaborator.<>c__DisplayClass1_0.<elaborateForPull>b__1(XPathContext context)
   at Saxon.Hej.expr.elab.PullElaborator.<>c__DisplayClass2_0.<elaborateForPush>b__0(Outputter out, XPathContext context)
   at Saxon.Hej.expr.instruct.MessageInstr.MessageInstrElaborator.<>c__DisplayClass0_0.<elaborateForPush>b__0(Outputter out, XPathContext context)
   at Saxon.Hej.expr.instruct.Block.BlockElaborator.<>c__DisplayClass3_1.<elaborateForPush>b__1(Outputter out, XPathContext context)
   at Saxon.Hej.expr.instruct.TemplateRule.applyLeavingTail(Outputter output, XPathContext context)
System.Exception: Internal error evaluating template rule  at line 16 in module file:///C:/Users/marti/OneDrive/Documents/xslt/blog-xslt-3-by-example/accumulator-message/sheet8.xsl
 ---> System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Saxon.Hej.expr.XPathContextMinor.evaluateLocalVariable(Int32 slot)
   at Saxon.Hej.expr.SuppliedParameterReference.SuppliedParameterReferenceElaborator.<>c__DisplayClass4_0.<elaborateForItem>b__0(XPathContext context)
   at Saxon.Hej.expr.ValueComparison.ValueComparisonElaborator.<>c__DisplayClass2_0.<elaborateForBoolean>b__1(XPathContext context)
   at Saxon.Hej.expr.OrExpression.OrElaborator.<>c__DisplayClass0_0.<elaborateForBoolean>b__0(XPathContext context)
   at Saxon.Hej.pattern.BasePatternWithPredicate.matchesPredicate(Item item, XPathContext context)
   at Saxon.Hej.pattern.BasePatternWithPredicate.matches(Item item, XPathContext context)
   at Saxon.Hej.trans.rules.Rule.matches(Item item, XPathContextMajor context)
   at Saxon.Hej.trans.SimpleMode.ruleMatches(Rule r, Item item, XPathContextMajor context, RuleSearchState pre)
   at Saxon.Hej.trans.SimpleMode.searchRuleChain(Item item, XPathContext context, Rule bestRule, RuleChain chain)
   at Saxon.Hej.trans.SimpleMode.findBestRuleForNodeInfo(NodeInfo node, XPathContext context)
   at Saxon.Hej.trans.SimpleMode.getRule(Item item, XPathContext context)
   at Saxon.Hej.expr.accum.AccumulatorData.visit(NodeInfo node, Sequence value, XPathContext context)
   at Saxon.Hej.expr.accum.AccumulatorData.visit(NodeInfo node, Sequence value, XPathContext context)
   at Saxon.Hej.expr.accum.AccumulatorData.buildIndex(NodeInfo doc, XPathContext context)
   at Saxon.Hej.expr.accum.AccumulatorManager.getAccumulatorData(TreeInfo doc, Accumulator acc, XPathContext context)
   at Saxon.Hej.functions.AccumulatorFn.getAccumulatorValue(String name, Phase phase, XPathContext context)
   at Saxon.Hej.functions.AccumulatorFn.call(XPathContext context, Sequence[] arguments)
   at Saxon.Hej.expr.SystemFunctionCall.SystemFunctionCallElaborator.<>c__DisplayClass1_0.<elaborateForPull>b__1(XPathContext context)
   at Saxon.Hej.expr.elab.PullElaborator.<>c__DisplayClass2_0.<elaborateForPush>b__0(Outputter out, XPathContext context)
   at Saxon.Hej.expr.instruct.MessageInstr.MessageInstrElaborator.<>c__DisplayClass0_0.<elaborateForPush>b__0(Outputter out, XPathContext context)
   at Saxon.Hej.expr.instruct.Block.BlockElaborator.<>c__DisplayClass3_1.<elaborateForPush>b__1(Outputter out, XPathContext context)
   at Saxon.Hej.expr.instruct.TemplateRule.applyLeavingTail(Outputter output, XPathContext context)
   --- End of inner exception stack trace ---
   at Saxon.Hej.expr.instruct.TemplateRule.applyLeavingTail(Outputter output, XPathContext context)
   at Saxon.Hej.trans.Mode.handleRuleNotNull(Rule rule, TraceListener traceListener, XPathContextMajor context, Item item, TemplateRule previousTemplate, ParameterSet parameters, ParameterSet tunnelParameters, Outputter output)
   at Saxon.Hej.trans.Mode.applyTemplates(ParameterSet parameters, ParameterSet tunnelParameters, NodeInfo separator, Outputter output, XPathContextMajor context, Location locationId)
   at Saxon.Hej.expr.instruct.ApplyTemplates.ApplyTemplatesElaborator.<>c__DisplayClass1_2.<elaborateForPush>b__1(Outputter output, XPathContext context)
   at Saxon.Hej.expr.instruct.Block.BlockElaborator.<>c__DisplayClass3_1.<elaborateForPush>b__1(Outputter out, XPathContext context)
   at Saxon.Hej.expr.instruct.Copy.CopyElaborator.<>c__DisplayClass0_0.<elaborateForPush>b__0(Outputter output, XPathContext context)
   at Saxon.Hej.expr.instruct.TemplateRule.applyLeavingTail(Outputter output, XPathContext context)
System.Exception: Internal error evaluating template rule  at line 21 in module file:///C:/Users/marti/OneDrive/Documents/xslt/blog-xslt-3-by-example/accumulator-message/sheet8.xsl
 ---> System.Exception: Internal error evaluating template rule  at line 16 in module file:///C:/Users/marti/OneDrive/Documents/xslt/blog-xslt-3-by-example/accumulator-message/sheet8.xsl
 ---> System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Saxon.Hej.expr.XPathContextMinor.evaluateLocalVariable(Int32 slot)
   at Saxon.Hej.expr.SuppliedParameterReference.SuppliedParameterReferenceElaborator.<>c__DisplayClass4_0.<elaborateForItem>b__0(XPathContext context)
   at Saxon.Hej.expr.ValueComparison.ValueComparisonElaborator.<>c__DisplayClass2_0.<elaborateForBoolean>b__1(XPathContext context)
   at Saxon.Hej.expr.OrExpression.OrElaborator.<>c__DisplayClass0_0.<elaborateForBoolean>b__0(XPathContext context)
   at Saxon.Hej.pattern.BasePatternWithPredicate.matchesPredicate(Item item, XPathContext context)
   at Saxon.Hej.pattern.BasePatternWithPredicate.matches(Item item, XPathContext context)
   at Saxon.Hej.trans.rules.Rule.matches(Item item, XPathContextMajor context)
   at Saxon.Hej.trans.SimpleMode.ruleMatches(Rule r, Item item, XPathContextMajor context, RuleSearchState pre)
   at Saxon.Hej.trans.SimpleMode.searchRuleChain(Item item, XPathContext context, Rule bestRule, RuleChain chain)
   at Saxon.Hej.trans.SimpleMode.findBestRuleForNodeInfo(NodeInfo node, XPathContext context)
   at Saxon.Hej.trans.SimpleMode.getRule(Item item, XPathContext context)
   at Saxon.Hej.expr.accum.AccumulatorData.visit(NodeInfo node, Sequence value, XPathContext context)
   at Saxon.Hej.expr.accum.AccumulatorData.visit(NodeInfo node, Sequence value, XPathContext context)
   at Saxon.Hej.expr.accum.AccumulatorData.buildIndex(NodeInfo doc, XPathContext context)
   at Saxon.Hej.expr.accum.AccumulatorManager.getAccumulatorData(TreeInfo doc, Accumulator acc, XPathContext context)
   at Saxon.Hej.functions.AccumulatorFn.getAccumulatorValue(String name, Phase phase, XPathContext context)
   at Saxon.Hej.functions.AccumulatorFn.call(XPathContext context, Sequence[] arguments)
   at Saxon.Hej.expr.SystemFunctionCall.SystemFunctionCallElaborator.<>c__DisplayClass1_0.<elaborateForPull>b__1(XPathContext context)
   at Saxon.Hej.expr.elab.PullElaborator.<>c__DisplayClass2_0.<elaborateForPush>b__0(Outputter out, XPathContext context)
   at Saxon.Hej.expr.instruct.MessageInstr.MessageInstrElaborator.<>c__DisplayClass0_0.<elaborateForPush>b__0(Outputter out, XPathContext context)
   at Saxon.Hej.expr.instruct.Block.BlockElaborator.<>c__DisplayClass3_1.<elaborateForPush>b__1(Outputter out, XPathContext context)
   at Saxon.Hej.expr.instruct.TemplateRule.applyLeavingTail(Outputter output, XPathContext context)
   --- End of inner exception stack trace ---
   at Saxon.Hej.expr.instruct.TemplateRule.applyLeavingTail(Outputter output, XPathContext context)
   at Saxon.Hej.trans.Mode.handleRuleNotNull(Rule rule, TraceListener traceListener, XPathContextMajor context, Item item, TemplateRule previousTemplate, ParameterSet parameters, ParameterSet tunnelParameters, Outputter output)
   at Saxon.Hej.trans.Mode.applyTemplates(ParameterSet parameters, ParameterSet tunnelParameters, NodeInfo separator, Outputter output, XPathContextMajor context, Location locationId)
   at Saxon.Hej.expr.instruct.ApplyTemplates.ApplyTemplatesElaborator.<>c__DisplayClass1_2.<elaborateForPush>b__1(Outputter output, XPathContext context)
   at Saxon.Hej.expr.instruct.Block.BlockElaborator.<>c__DisplayClass3_1.<elaborateForPush>b__1(Outputter out, XPathContext context)
   at Saxon.Hej.expr.instruct.Copy.CopyElaborator.<>c__DisplayClass0_0.<elaborateForPush>b__0(Outputter output, XPathContext context)
   at Saxon.Hej.expr.instruct.TemplateRule.applyLeavingTail(Outputter output, XPathContext context)
   --- End of inner exception stack trace ---
   at Saxon.Hej.expr.instruct.TemplateRule.applyLeavingTail(Outputter output, XPathContext context)
   at Saxon.Hej.trans.Mode.handleRuleNotNull(Rule rule, TraceListener traceListener, XPathContextMajor context, Item item, TemplateRule previousTemplate, ParameterSet parameters, ParameterSet tunnelParameters, Outputter output)
   at Saxon.Hej.trans.Mode.applyTemplates(ParameterSet parameters, ParameterSet tunnelParameters, NodeInfo separator, Outputter output, XPathContextMajor context, Location locationId)
   at Saxon.Hej.trans.XsltController.applyTemplates(Sequence source, Receiver out)
   at Saxon.Hej.s9api.AbstractXsltTransformer.applyTemplatesToSource(Source source, Receiver out)
   at Saxon.Hej.s9api.Xslt30Transformer.applyTemplates(Source source, Destination destination)
   at Saxon.Hej.Transform.processFile(Source source, XsltExecutable sheet, File outputFile, CommandLineOptions options)
   at Saxon.Hej.Transform.doTransform(String[] args)
Fatal error during transformation: Exception: Internal error evaluating template rule  at line 21 in module file:///C:/Users/marti/OneDrive/Documents/xslt/blog-xslt-3-by-example/accumulator-message/sheet8.xsl
Exiting with code 2

Please register to edit this issue

Also available in: Atom PDF