java.lang.ArrayIndexOutOfBoundsException: 0

Pentaho BI Platform Tracking | Greg Taylor | 4 years ago
tip
Do you know that we can give you better hits? Get more relevant results from Samebug’s stack trace search.
  1. 0

    The stack trace below is seen after firing two consecutive MDX queries through Mondrian. It seems to occur only if all the values are null and may require the use of WITH SET and/or WITH MEMBER. I'm going to submit a code change and JUnit test that reproduces the problem in the FoodMart sample db. java.lang.ArrayIndexOutOfBoundsException: 0 at mondrian.rolap.agg.DenseObjectSegmentDataset.getObject(DenseObjectSegmentDataset.java:56) at mondrian.rolap.agg.SegmentWithData.getCellValue(SegmentWithData.java:179) at mondrian.rolap.RolapStar.getCellFromCache(RolapStar.java:157) at mondrian.rolap.agg.AggregationManager.getCellFromCache(AggregationManager.java:188) at mondrian.rolap.FastBatchingCellReader.get(FastBatchingCellReader.java:115) at mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:660) at mondrian.calc.impl.MemberValueCalc.evaluate(MemberValueCalc.java:100) at mondrian.calc.impl.GenericCalc.evaluateDouble(GenericCalc.java:110) at mondrian.olap.fun.BuiltinFunTable$45$1.evaluateDouble(BuiltinFunTable.java:1405) at mondrian.olap.fun.BuiltinFunTable$45$1.evaluateDouble(BuiltinFunTable.java:1405) at mondrian.calc.impl.AbstractDoubleCalc.evaluate(AbstractDoubleCalc.java:45) at mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:687) at mondrian.calc.impl.MemberValueCalc.evaluate(MemberValueCalc.java:100) at mondrian.calc.impl.GenericCalc.evaluateDouble(GenericCalc.java:110) at mondrian.olap.fun.BuiltinFunTable$45$1.evaluateDouble(BuiltinFunTable.java:1405) at mondrian.calc.impl.AbstractDoubleCalc.evaluate(AbstractDoubleCalc.java:45) at mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:687) at mondrian.calc.impl.MemberValueCalc.evaluate(MemberValueCalc.java:100) at mondrian.calc.impl.GenericCalc.evaluateDouble(GenericCalc.java:110) at mondrian.olap.fun.BuiltinFunTable$45$1.evaluateDouble(BuiltinFunTable.java:1405) at mondrian.calc.impl.AbstractDoubleCalc.evaluate(AbstractDoubleCalc.java:45) at mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:687) at mondrian.calc.impl.MemberValueCalc.evaluate(MemberValueCalc.java:100) at mondrian.olap.fun.FunUtil.evaluateSet(FunUtil.java:1580) at mondrian.olap.fun.FunUtil.sumDouble(FunUtil.java:1493) at mondrian.olap.fun.SumFunDef$2.evaluateDouble(SumFunDef.java:127) at mondrian.olap.fun.BuiltinFunTable$47$1.evaluateDouble(BuiltinFunTable.java:1472) at mondrian.olap.fun.BuiltinFunTable$48$2.evaluateDouble(BuiltinFunTable.java:1532) at mondrian.calc.impl.AbstractDoubleCalc.evaluate(AbstractDoubleCalc.java:45) at mondrian.olap.fun.IifFunDef$4$1.evaluate(IifFunDef.java:145) at mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:687) at mondrian.rolap.RolapResult.executeStripe(RolapResult.java:980) at mondrian.rolap.RolapResult.executeStripe(RolapResult.java:1130) at mondrian.rolap.RolapResult.executeStripe(RolapResult.java:1130) at mondrian.rolap.RolapResult.executeBody(RolapResult.java:854) at mondrian.rolap.RolapResult.<init>(RolapResult.java:452) at mondrian.rolap.RolapConnection.executeInternal(RolapConnection.java:680)

    Pentaho BI Platform Tracking | 4 years ago | Greg Taylor
    java.lang.ArrayIndexOutOfBoundsException: 0
  2. 0

    The stack trace below is seen after firing two consecutive MDX queries through Mondrian. It seems to occur only if all the values are null and may require the use of WITH SET and/or WITH MEMBER. I'm going to submit a code change and JUnit test that reproduces the problem in the FoodMart sample db. java.lang.ArrayIndexOutOfBoundsException: 0 at mondrian.rolap.agg.DenseObjectSegmentDataset.getObject(DenseObjectSegmentDataset.java:56) at mondrian.rolap.agg.SegmentWithData.getCellValue(SegmentWithData.java:179) at mondrian.rolap.RolapStar.getCellFromCache(RolapStar.java:157) at mondrian.rolap.agg.AggregationManager.getCellFromCache(AggregationManager.java:188) at mondrian.rolap.FastBatchingCellReader.get(FastBatchingCellReader.java:115) at mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:660) at mondrian.calc.impl.MemberValueCalc.evaluate(MemberValueCalc.java:100) at mondrian.calc.impl.GenericCalc.evaluateDouble(GenericCalc.java:110) at mondrian.olap.fun.BuiltinFunTable$45$1.evaluateDouble(BuiltinFunTable.java:1405) at mondrian.olap.fun.BuiltinFunTable$45$1.evaluateDouble(BuiltinFunTable.java:1405) at mondrian.calc.impl.AbstractDoubleCalc.evaluate(AbstractDoubleCalc.java:45) at mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:687) at mondrian.calc.impl.MemberValueCalc.evaluate(MemberValueCalc.java:100) at mondrian.calc.impl.GenericCalc.evaluateDouble(GenericCalc.java:110) at mondrian.olap.fun.BuiltinFunTable$45$1.evaluateDouble(BuiltinFunTable.java:1405) at mondrian.calc.impl.AbstractDoubleCalc.evaluate(AbstractDoubleCalc.java:45) at mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:687) at mondrian.calc.impl.MemberValueCalc.evaluate(MemberValueCalc.java:100) at mondrian.calc.impl.GenericCalc.evaluateDouble(GenericCalc.java:110) at mondrian.olap.fun.BuiltinFunTable$45$1.evaluateDouble(BuiltinFunTable.java:1405) at mondrian.calc.impl.AbstractDoubleCalc.evaluate(AbstractDoubleCalc.java:45) at mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:687) at mondrian.calc.impl.MemberValueCalc.evaluate(MemberValueCalc.java:100) at mondrian.olap.fun.FunUtil.evaluateSet(FunUtil.java:1580) at mondrian.olap.fun.FunUtil.sumDouble(FunUtil.java:1493) at mondrian.olap.fun.SumFunDef$2.evaluateDouble(SumFunDef.java:127) at mondrian.olap.fun.BuiltinFunTable$47$1.evaluateDouble(BuiltinFunTable.java:1472) at mondrian.olap.fun.BuiltinFunTable$48$2.evaluateDouble(BuiltinFunTable.java:1532) at mondrian.calc.impl.AbstractDoubleCalc.evaluate(AbstractDoubleCalc.java:45) at mondrian.olap.fun.IifFunDef$4$1.evaluate(IifFunDef.java:145) at mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:687) at mondrian.rolap.RolapResult.executeStripe(RolapResult.java:980) at mondrian.rolap.RolapResult.executeStripe(RolapResult.java:1130) at mondrian.rolap.RolapResult.executeStripe(RolapResult.java:1130) at mondrian.rolap.RolapResult.executeBody(RolapResult.java:854) at mondrian.rolap.RolapResult.<init>(RolapResult.java:452) at mondrian.rolap.RolapConnection.executeInternal(RolapConnection.java:680)

    Pentaho BI Platform Tracking | 4 years ago | Greg Taylor
    java.lang.ArrayIndexOutOfBoundsException: 0

    Root Cause Analysis

    1. java.lang.ArrayIndexOutOfBoundsException

      0

      at mondrian.rolap.agg.DenseObjectSegmentDataset.getObject()
    2. mondrian.rolap.agg
      SegmentWithData.getCellValue
      1. mondrian.rolap.agg.DenseObjectSegmentDataset.getObject(DenseObjectSegmentDataset.java:56)
      2. mondrian.rolap.agg.SegmentWithData.getCellValue(SegmentWithData.java:179)
      2 frames
    3. mondrian.rolap
      RolapStar.getCellFromCache
      1. mondrian.rolap.RolapStar.getCellFromCache(RolapStar.java:157)
      1 frame
    4. mondrian.rolap.agg
      AggregationManager.getCellFromCache
      1. mondrian.rolap.agg.AggregationManager.getCellFromCache(AggregationManager.java:188)
      1 frame
    5. mondrian.rolap
      RolapEvaluator.evaluateCurrent
      1. mondrian.rolap.FastBatchingCellReader.get(FastBatchingCellReader.java:115)
      2. mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:660)
      2 frames
    6. mondrian.calc.impl
      GenericCalc.evaluateDouble
      1. mondrian.calc.impl.MemberValueCalc.evaluate(MemberValueCalc.java:100)
      2. mondrian.calc.impl.GenericCalc.evaluateDouble(GenericCalc.java:110)
      2 frames
    7. mondrian.olap.fun
      BuiltinFunTable$45$1.evaluateDouble
      1. mondrian.olap.fun.BuiltinFunTable$45$1.evaluateDouble(BuiltinFunTable.java:1405)
      2. mondrian.olap.fun.BuiltinFunTable$45$1.evaluateDouble(BuiltinFunTable.java:1405)
      2 frames
    8. mondrian.calc.impl
      AbstractDoubleCalc.evaluate
      1. mondrian.calc.impl.AbstractDoubleCalc.evaluate(AbstractDoubleCalc.java:45)
      1 frame
    9. mondrian.rolap
      RolapEvaluator.evaluateCurrent
      1. mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:687)
      1 frame
    10. mondrian.calc.impl
      GenericCalc.evaluateDouble
      1. mondrian.calc.impl.MemberValueCalc.evaluate(MemberValueCalc.java:100)
      2. mondrian.calc.impl.GenericCalc.evaluateDouble(GenericCalc.java:110)
      2 frames
    11. mondrian.olap.fun
      BuiltinFunTable$45$1.evaluateDouble
      1. mondrian.olap.fun.BuiltinFunTable$45$1.evaluateDouble(BuiltinFunTable.java:1405)
      1 frame
    12. mondrian.calc.impl
      AbstractDoubleCalc.evaluate
      1. mondrian.calc.impl.AbstractDoubleCalc.evaluate(AbstractDoubleCalc.java:45)
      1 frame
    13. mondrian.rolap
      RolapEvaluator.evaluateCurrent
      1. mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:687)
      1 frame
    14. mondrian.calc.impl
      GenericCalc.evaluateDouble
      1. mondrian.calc.impl.MemberValueCalc.evaluate(MemberValueCalc.java:100)
      2. mondrian.calc.impl.GenericCalc.evaluateDouble(GenericCalc.java:110)
      2 frames
    15. mondrian.olap.fun
      BuiltinFunTable$45$1.evaluateDouble
      1. mondrian.olap.fun.BuiltinFunTable$45$1.evaluateDouble(BuiltinFunTable.java:1405)
      1 frame
    16. mondrian.calc.impl
      AbstractDoubleCalc.evaluate
      1. mondrian.calc.impl.AbstractDoubleCalc.evaluate(AbstractDoubleCalc.java:45)
      1 frame
    17. mondrian.rolap
      RolapEvaluator.evaluateCurrent
      1. mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:687)
      1 frame
    18. mondrian.calc.impl
      MemberValueCalc.evaluate
      1. mondrian.calc.impl.MemberValueCalc.evaluate(MemberValueCalc.java:100)
      1 frame
    19. mondrian.olap.fun
      BuiltinFunTable$48$2.evaluateDouble
      1. mondrian.olap.fun.FunUtil.evaluateSet(FunUtil.java:1580)
      2. mondrian.olap.fun.FunUtil.sumDouble(FunUtil.java:1493)
      3. mondrian.olap.fun.SumFunDef$2.evaluateDouble(SumFunDef.java:127)
      4. mondrian.olap.fun.BuiltinFunTable$47$1.evaluateDouble(BuiltinFunTable.java:1472)
      5. mondrian.olap.fun.BuiltinFunTable$48$2.evaluateDouble(BuiltinFunTable.java:1532)
      5 frames
    20. mondrian.calc.impl
      AbstractDoubleCalc.evaluate
      1. mondrian.calc.impl.AbstractDoubleCalc.evaluate(AbstractDoubleCalc.java:45)
      1 frame
    21. mondrian.olap.fun
      IifFunDef$4$1.evaluate
      1. mondrian.olap.fun.IifFunDef$4$1.evaluate(IifFunDef.java:145)
      1 frame
    22. mondrian.rolap
      RolapConnection.executeInternal
      1. mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:687)
      2. mondrian.rolap.RolapResult.executeStripe(RolapResult.java:980)
      3. mondrian.rolap.RolapResult.executeStripe(RolapResult.java:1130)
      4. mondrian.rolap.RolapResult.executeStripe(RolapResult.java:1130)
      5. mondrian.rolap.RolapResult.executeBody(RolapResult.java:854)
      6. mondrian.rolap.RolapResult.<init>(RolapResult.java:452)
      7. mondrian.rolap.RolapConnection.executeInternal(RolapConnection.java:680)
      7 frames