Details

    • Type: Bug
    • Status: Closed
    • Severity: Medium
    • Resolution: Incomplete
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Notice:
      When an issue is open, the "Fix Version/s" field conveys a target, not necessarily a commitment. When an issue is closed, the "Fix Version/s" field conveys the version that the issue was fixed in.

      Description

      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.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              jhyde Julian Hyde
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: