java.lang.RuntimeException: Element 10 has been forgotten

Pentaho BI Platform Tracking | Julian Hyde | 8 years ago
  1. 0

    I broke 3 of the test cases in HighCardinalityTest in my change 11947. Now testPromotionsTwoDimensions, testHead, testNonEmpty all fail. Error stack as follows: java.lang.RuntimeException: Element 10 has been forgotten at mondrian.rolap.Target$1.get(Target.java:209) at mondrian.rolap.Target$1.get(Target.java:175) at mondrian.util.TraversalList.get(TraversalList.java:52) at mondrian.util.TraversalList$1.hasNext(TraversalList.java:76) at mondrian.rolap.SqlMemberSource$1$1.hasNext(SqlMemberSource.java:483) at mondrian.rolap.RolapCubeHierarchy$NoCacheRolapCubeHierarchyMemberReader$1$1.hasNext(RolapCubeHierarchy.java:954) at mondrian.util.FilteredIterableList$1.postNext(FilteredIterableList.java:92) at mondrian.util.FilteredIterableList$1.next(FilteredIterableList.java:108) at mondrian.util.FilteredIterableList$1.postNext(FilteredIterableList.java:93) at mondrian.util.FilteredIterableList$1.next(FilteredIterableList.java:108) at mondrian.rolap.RolapAxis$MemberList$PositionList$1.next(RolapAxis.java:342) at mondrian.rolap.RolapAxis$MemberList$PositionList$1.next(RolapAxis.java:335) at mondrian.rolap.HighDimensionsTest.execHighCardTest(HighDimensionsTest.java:179) at mondrian.rolap.HighDimensionsTest.testPromotionsTwoDimensions(HighDimensionsTest.java:59) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) I surmise the following cause (I may be mistaken). High-cardinality dimensions return lists which are backed by iterators, and those iterators cannot be restarted. Mondrian sometimes iterates over lists more than once, or accesses elements them in arbitrary order. The problem is not with the mondrian code, it is with the high-cardinality dimension code that claims to implement the List interface but does not. I have disabled these tests.

    Pentaho BI Platform Tracking | 8 years ago | Julian Hyde
    java.lang.RuntimeException: Element 10 has been forgotten
  2. 0

    I broke 3 of the test cases in HighCardinalityTest in my change 11947. Now testPromotionsTwoDimensions, testHead, testNonEmpty all fail. Error stack as follows: java.lang.RuntimeException: Element 10 has been forgotten at mondrian.rolap.Target$1.get(Target.java:209) at mondrian.rolap.Target$1.get(Target.java:175) at mondrian.util.TraversalList.get(TraversalList.java:52) at mondrian.util.TraversalList$1.hasNext(TraversalList.java:76) at mondrian.rolap.SqlMemberSource$1$1.hasNext(SqlMemberSource.java:483) at mondrian.rolap.RolapCubeHierarchy$NoCacheRolapCubeHierarchyMemberReader$1$1.hasNext(RolapCubeHierarchy.java:954) at mondrian.util.FilteredIterableList$1.postNext(FilteredIterableList.java:92) at mondrian.util.FilteredIterableList$1.next(FilteredIterableList.java:108) at mondrian.util.FilteredIterableList$1.postNext(FilteredIterableList.java:93) at mondrian.util.FilteredIterableList$1.next(FilteredIterableList.java:108) at mondrian.rolap.RolapAxis$MemberList$PositionList$1.next(RolapAxis.java:342) at mondrian.rolap.RolapAxis$MemberList$PositionList$1.next(RolapAxis.java:335) at mondrian.rolap.HighDimensionsTest.execHighCardTest(HighDimensionsTest.java:179) at mondrian.rolap.HighDimensionsTest.testPromotionsTwoDimensions(HighDimensionsTest.java:59) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) I surmise the following cause (I may be mistaken). High-cardinality dimensions return lists which are backed by iterators, and those iterators cannot be restarted. Mondrian sometimes iterates over lists more than once, or accesses elements them in arbitrary order. The problem is not with the mondrian code, it is with the high-cardinality dimension code that claims to implement the List interface but does not. I have disabled these tests.

    Pentaho BI Platform Tracking | 8 years ago | Julian Hyde
    java.lang.RuntimeException: Element 10 has been forgotten
  3. 0
    samebug tip
    If the decompile process didn't work properly, try the Android APK Decompiler.
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0
    samebug tip
    SMS Emulator caused this error. abortBroadcast only works with broadcasts sent through Context.sendOrderedBroadcast.
  6. 0
    samebug tip
    Switch to Android Build Tools 23.0.3

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.RuntimeException

      Element 10 has been forgotten

      at mondrian.rolap.Target$1.get()
    2. mondrian.rolap
      Target$1.get
      1. mondrian.rolap.Target$1.get(Target.java:209)
      2. mondrian.rolap.Target$1.get(Target.java:175)
      2 frames
    3. mondrian.util
      TraversalList$1.hasNext
      1. mondrian.util.TraversalList.get(TraversalList.java:52)
      2. mondrian.util.TraversalList$1.hasNext(TraversalList.java:76)
      2 frames
    4. mondrian.rolap
      RolapCubeHierarchy$NoCacheRolapCubeHierarchyMemberReader$1$1.hasNext
      1. mondrian.rolap.SqlMemberSource$1$1.hasNext(SqlMemberSource.java:483)
      2. mondrian.rolap.RolapCubeHierarchy$NoCacheRolapCubeHierarchyMemberReader$1$1.hasNext(RolapCubeHierarchy.java:954)
      2 frames
    5. mondrian.util
      FilteredIterableList$1.next
      1. mondrian.util.FilteredIterableList$1.postNext(FilteredIterableList.java:92)
      2. mondrian.util.FilteredIterableList$1.next(FilteredIterableList.java:108)
      3. mondrian.util.FilteredIterableList$1.postNext(FilteredIterableList.java:93)
      4. mondrian.util.FilteredIterableList$1.next(FilteredIterableList.java:108)
      4 frames
    6. mondrian.rolap
      HighDimensionsTest.testPromotionsTwoDimensions
      1. mondrian.rolap.RolapAxis$MemberList$PositionList$1.next(RolapAxis.java:342)
      2. mondrian.rolap.RolapAxis$MemberList$PositionList$1.next(RolapAxis.java:335)
      3. mondrian.rolap.HighDimensionsTest.execHighCardTest(HighDimensionsTest.java:179)
      4. mondrian.rolap.HighDimensionsTest.testPromotionsTwoDimensions(HighDimensionsTest.java:59)
      4 frames
    7. Java RT
      DelegatingMethodAccessorImpl.invoke
      1. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      2. sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      3. sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      3 frames
    8. IDEA
      JUnitStarter.main
      1. com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
      1 frame
    9. Java RT
      DelegatingMethodAccessorImpl.invoke
      1. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      2. sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      3. sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      3 frames
    10. IDEA
      AppMain.main
      1. com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
      1 frame