Menu

#303 ArrayIndexOutOfBoundsException in TinyTree.condense() method

v8.2
closed
nobody
None
5
2012-10-08
2005-02-09
No

The following exception was raised:

java.lang.ArrayIndexOutOfBoundsException: 50
at
net.sf.saxon.tinytree.TinyTree.condense(TinyTree.java:330)
at
net.sf.saxon.tinytree.TinyBuilder.close(TinyBuilder.java:145)
at
net.sf.saxon.event.ProxyReceiver.close(ProxyReceiver.java:97)
at
net.sf.saxon.event.ComplexContentOutputter.close(ComplexContentOutputter.java:417)
at
net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:219)
at
net.sf.saxon.instruct.DocumentInstr.processLeavingTail(DocumentInstr.java:152)
at
net.sf.saxon.instruct.Instruction.process(Instruction.java:90)
at
net.sf.saxon.expr.ExpressionTool.eagerEvaluate(ExpressionTool.java:245)
at
net.sf.saxon.expr.ExpressionTool.lazyEvaluate(ExpressionTool.java:183)
at
net.sf.saxon.expr.LetExpression.eval(LetExpression.java:103)
at
net.sf.saxon.expr.LetExpression.process(LetExpression.java:122)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:217)
at
net.sf.saxon.instruct.Instruction.process(Instruction.java:90)
at
net.sf.saxon.expr.LetExpression.process(LetExpression.java:124)
at
net.sf.saxon.expr.LetExpression.process(LetExpression.java:124)
at
net.sf.saxon.expr.LetExpression.process(LetExpression.java:124)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:217)
at
net.sf.saxon.instruct.Instruction.process(Instruction.java:90)
at
net.sf.saxon.expr.LetExpression.process(LetExpression.java:124)
at
net.sf.saxon.instruct.Template.expand(Template.java:100)
at
net.sf.saxon.instruct.Template.processLeavingTail(Template.java:82)
at
net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:285)
at
net.sf.saxon.instruct.ApplyTemplates.apply(ApplyTemplates.java:167)
at
net.sf.saxon.instruct.ApplyTemplates.process(ApplyTemplates.java:127)
at
net.sf.saxon.instruct.ResultDocument.processLeavingTail(ResultDocument.java:283)
at
net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:213)
at
net.sf.saxon.instruct.Instruction.process(Instruction.java:90)
at
net.sf.saxon.expr.LetExpression.process(LetExpression.java:124)
at
net.sf.saxon.expr.LetExpression.process(LetExpression.java:124)
at
net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:215)
at
net.sf.saxon.instruct.Instruction.process(Instruction.java:90)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:158)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.instruct.Template.expand(Template.java:100)
at
net.sf.saxon.instruct.Template.processLeavingTail(Template.java:82)
at
net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:285)
at
net.sf.saxon.instruct.ApplyTemplates.apply(ApplyTemplates.java:167)
at
net.sf.saxon.instruct.ApplyTemplates.process(ApplyTemplates.java:127)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.instruct.Template.expand(Template.java:100)
at
net.sf.saxon.instruct.Template.processLeavingTail(Template.java:82)
at
net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:285)
at
net.sf.saxon.instruct.ApplyTemplates.apply(ApplyTemplates.java:167)
at
net.sf.saxon.instruct.ApplyTemplates.process(ApplyTemplates.java:127)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.instruct.Template.expand(Template.java:100)
at
net.sf.saxon.instruct.Template.processLeavingTail(Template.java:82)
at
net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:285)
at
net.sf.saxon.instruct.ApplyTemplates.apply(ApplyTemplates.java:167)
at
net.sf.saxon.instruct.ApplyTemplates.process(ApplyTemplates.java:127)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.instruct.Template.expand(Template.java:100)
at
net.sf.saxon.instruct.Template.processLeavingTail(Template.java:82)
at
net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:285)
at
net.sf.saxon.instruct.ApplyTemplates.apply(ApplyTemplates.java:167)
at
net.sf.saxon.instruct.ApplyTemplates.process(ApplyTemplates.java:127)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.instruct.Template.expand(Template.java:100)
at
net.sf.saxon.instruct.Template.processLeavingTail(Template.java:82)
at
net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:285)
at
net.sf.saxon.instruct.ApplyTemplates.apply(ApplyTemplates.java:167)
at
net.sf.saxon.instruct.ApplyTemplates.process(ApplyTemplates.java:127)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.instruct.Template.expand(Template.java:100)
at
net.sf.saxon.instruct.Template.processLeavingTail(Template.java:82)
at
net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:285)
at
net.sf.saxon.instruct.ApplyTemplates.apply(ApplyTemplates.java:167)
at
net.sf.saxon.instruct.ApplyTemplates.process(ApplyTemplates.java:127)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.instruct.Template.expand(Template.java:100)
at
net.sf.saxon.instruct.Template.processLeavingTail(Template.java:82)
at
net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:285)
at
net.sf.saxon.instruct.ApplyTemplates.apply(ApplyTemplates.java:167)
at
net.sf.saxon.instruct.ApplyTemplates.process(ApplyTemplates.java:127)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.instruct.Template.expand(Template.java:100)
at
net.sf.saxon.instruct.Template.processLeavingTail(Template.java:82)
at
net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:285)
at
net.sf.saxon.instruct.ApplyTemplates.apply(ApplyTemplates.java:167)
at
net.sf.saxon.instruct.ApplyTemplates.process(ApplyTemplates.java:127)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.instruct.Template.expand(Template.java:100)
at
net.sf.saxon.instruct.Template.processLeavingTail(Template.java:82)
at
net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:285)
at
net.sf.saxon.instruct.ApplyTemplates.apply(ApplyTemplates.java:167)
at
net.sf.saxon.instruct.ApplyTemplates.process(ApplyTemplates.java:127)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.instruct.Template.expand(Template.java:100)
at
net.sf.saxon.instruct.Template.processLeavingTail(Template.java:82)
at
net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:285)
at
net.sf.saxon.instruct.ApplyTemplates.apply(ApplyTemplates.java:167)
at
net.sf.saxon.instruct.ApplyTemplates.process(ApplyTemplates.java:127)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:158)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.expr.AppendExpression.process(AppendExpression.java:159)
at
net.sf.saxon.instruct.Template.expand(Template.java:100)
at
net.sf.saxon.instruct.Template.processLeavingTail(Template.java:82)
at
net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:285)
at
net.sf.saxon.Controller.transformDocument(Controller.java:1120)
at
net.sf.saxon.Controller.transform(Controller.java:964)
at
net.sf.saxon.Transform.processFile(Transform.java:773)
at net.sf.saxon.Transform.doMain(Transform.java:452)
at net.sf.saxon.Transform.main(Transform.java:58)

Discussion

  • Stefan Wachter

    Stefan Wachter - 2005-02-09

    Logged In: YES
    user_id=588968

    The exception occurs when the tiny tree is completly full
    and the condense method is called. In this situation the
    array length is equal to the variable numberOfNodes.

    As a quick fix: should one call ensureCapacity before
    setting the Type.STOPPER or is setting Type.STOPPER not
    necessary if the tiny tree is completely filled?

     
  • Michael Kay

    Michael Kay - 2005-02-11

    Logged In: YES
    user_id=251681

    PLEASE don't raise suspected bugs in this area: as the
    bright yellow highlighted text indicates, it is for
    confirmed bugs only. Please raise bugs on the saxon-help
    list or forum.

    This is a duplicate of 1096802, which includes a fix. It's
    fixed in 8.3.

    Michael Kay