From: Julian H. <jul...@sp...> - 2007-01-23 10:11:10
|
Benny, So this doesn't get lost, can you log a bug in SF.net and assign to Richard? If you have an MDX testcase involving sublist and foodmart that would be even better. Julian _____ From: mon...@li... [mailto:mon...@li...] On Behalf Of Benny Chow Sent: Sunday, January 21, 2007 11:05 AM To: Richard Emberson Cc: mon...@li... Subject: [Mondrian-devel] Broken Unit Tests Hi Richard, Some of your recent changes broke a few of our unit tests. The MDX is below along with the stack trace. Would you mind having a look? Separately, we plan on adding tests similar to the one below so that we can catch these problems upstream. Thanks Benny With Set [*NATIVE_CJ_SET] as 'NonEmptyCrossJoin([*BASE_MEMBERS_Product],[*BASE_MEMBERS_Education Level])' Set [*GENERATED_MEMBERS_Measures] as '{[Measures].[Unit Sales],[Measures].[Store Cost],[Measures].[*SUMMARY_METRIC_0]}' Set [*BASE_MEMBERS_Product] as '[Product].[Product Family].Members' Set [*GENERATED_MEMBERS_Product] as 'Generate([*NATIVE_CJ_SET], {[Product].CurrentMember})' Set [*BASE_MEMBERS_Education Level] as '[Education Level].[Education Level].Members' Set [*GENERATED_MEMBERS_Education Level] as 'Generate([*NATIVE_CJ_SET], {[Education Level].CurrentMember})' Member [Measures].[*SUMMARY_METRIC_0] as 'Sum(Head(CrossJoin({[Product].CurrentMember},[*GENERATED_MEMBERS_Education Level]),Rank(([Product].CurrentMember,[Education Level].CurrentMember),CrossJoin({[Product].CurrentMember},[*GENERATED_MEMBER S_Education Level]))),[Measures].[Unit Sales])' Member [Education Level].[*SUBTOTAL_MEMBER_SEL~SUM] as 'sum([*GENERATED_MEMBERS_Education Level])' Member [Product].[*SUBTOTAL_MEMBER_SEL~SUM] as 'sum([*GENERATED_MEMBERS_Product])' Select [*GENERATED_MEMBERS_Measures] on columns, Non Empty Union(NonEmptyCrossJoin({[Product].[*SUBTOTAL_MEMBER_SEL~SUM]},{[Education Level].[*SUBTOTAL_MEMBER_SEL~SUM]}),Union(NonEmptyCrossJoin([*GENERATED_MEMB ERS_Product],{[Education Level].[*SUBTOTAL_MEMBER_SEL~SUM]}),Generate([*NATIVE_CJ_SET], {([Product].CurrentMember,[Education Level].CurrentMember)}))) on rows >From [Sales] Here's the stack: java.lang.RuntimeException: mondrian.olap.MondrianException: Mondrian Error:Internal error: Error while executing query [with set [*NATIVE_CJ_SET] as 'NonEmptyCrossJoin([*BASE_MEMBERS_Product], [*BASE_MEMBERS_Education Level])' set [*GENERATED_MEMBERS_Measures] as '{[Measures].[Unit Sales], [Measures].[Store Cost], [Measures].[*SUMMARY_METRIC_0]}' set [*BASE_MEMBERS_Product] as '[Product].[Product Family].Members' set [*GENERATED_MEMBERS_Product] as 'Generate([*NATIVE_CJ_SET], {[Product].CurrentMember})' set [*BASE_MEMBERS_Education Level] as '[Education Level].[Education Level].Members' set [*GENERATED_MEMBERS_Education Level] as 'Generate([*NATIVE_CJ_SET], {[Education Level].CurrentMember})' member [Measures].[*SUMMARY_METRIC_0] as 'Sum(Head(Crossjoin({[Product].CurrentMember}, [*GENERATED_MEMBERS_Education Level]), Rank(([Product].CurrentMember, [Education Level].CurrentMember), Crossjoin({[Product].CurrentMember}, [*GENERATED_MEMBERS_Education Level]))), [Measures].[Unit Sales])' member [Education Level].[*SUBTOTAL_MEMBER_SEL~SUM] as 'Sum([*GENERATED_MEMBERS_Education Level])' member [Product].[*SUBTOTAL_MEMBER_SEL~SUM] as 'Sum([*GENERATED_MEMBERS_Product])' select [*GENERATED_MEMBERS_Measures] ON COLUMNS, NON EMPTY Union(NonEmptyCrossJoin({[Product].[*SUBTOTAL_MEMBER_SEL~SUM]}, {[Education Level].[*SUBTOTAL_MEMBER_SEL~SUM]}), Union(NonEmptyCrossJoin([*GENERATED_MEMBERS_Product], {[Education Level].[*SUBTOTAL_MEMBER_SEL~SUM]}), Generate([*NATIVE_CJ_SET], {([Product].CurrentMember, [Education Level].CurrentMember)}))) ON ROWS from [Sales] ] at com.lucidera.clearview.service.impl.AnalysisAreaManager.executeQuery(Analysi sAreaManager.java:319) at com.lucidera.clearview.report.ReportManagerImpl.runReport(ReportManagerImpl. java:116) at com.lucidera.clearview.report.ReportManagerImpl.runReport(ReportManagerImpl. java:66) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU tils.java:335) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint (ReflectiveMethodInvocation.java:181) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect iveMethodInvocation.java:148) at com.lucidera.clearview.util.LoggedMethodAdvice.invoke(LoggedMethodAdvice.jav a:38) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect iveMethodInvocation.java:170) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro xy.java:176) at $Proxy39.runReport(Unknown Source) at com.lucidera.clearview.report.ReportRequestService.runReportSync(ReportReque stService.java:182) at com.lucidera.clearview.service.impl.SummaryMetricRSUMTest.testRunningSumWith BreakOnAttribute(SummaryMetricRSUMTest.java:84) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at junit.framework.TestCase.runTest(TestCase.java:164) at junit.framework.TestCase.runBare(TestCase.java:130) at junit.framework.TestResult$1.protect(TestResult.java:110) at junit.framework.TestResult.runProtected(TestResult.java:128) at junit.framework.TestResult.run(TestResult.java:113) at junit.framework.TestCase.run(TestCase.java:120) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRu nner.java:478) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner. java:344) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner .java:196) Caused by: mondrian.olap.MondrianException: Mondrian Error:Internal error: Error while executing query [with set [*NATIVE_CJ_SET] as 'NonEmptyCrossJoin([*BASE_MEMBERS_Product], [*BASE_MEMBERS_Education Level])' set [*GENERATED_MEMBERS_Measures] as '{[Measures].[Unit Sales], [Measures].[Store Cost], [Measures].[*SUMMARY_METRIC_0]}' set [*BASE_MEMBERS_Product] as '[Product].[Product Family].Members' set [*GENERATED_MEMBERS_Product] as 'Generate([*NATIVE_CJ_SET], {[Product].CurrentMember})' set [*BASE_MEMBERS_Education Level] as '[Education Level].[Education Level].Members' set [*GENERATED_MEMBERS_Education Level] as 'Generate([*NATIVE_CJ_SET], {[Education Level].CurrentMember})' member [Measures].[*SUMMARY_METRIC_0] as 'Sum(Head(Crossjoin({[Product].CurrentMember}, [*GENERATED_MEMBERS_Education Level]), Rank(([Product].CurrentMember, [Education Level].CurrentMember), Crossjoin({[Product].CurrentMember}, [*GENERATED_MEMBERS_Education Level]))), [Measures].[Unit Sales])' member [Education Level].[*SUBTOTAL_MEMBER_SEL~SUM] as 'Sum([*GENERATED_MEMBERS_Education Level])' member [Product].[*SUBTOTAL_MEMBER_SEL~SUM] as 'Sum([*GENERATED_MEMBERS_Product])' select [*GENERATED_MEMBERS_Measures] ON COLUMNS, NON EMPTY Union(NonEmptyCrossJoin({[Product].[*SUBTOTAL_MEMBER_SEL~SUM]}, {[Education Level].[*SUBTOTAL_MEMBER_SEL~SUM]}), Union(NonEmptyCrossJoin([*GENERATED_MEMBERS_Product], {[Education Level].[*SUBTOTAL_MEMBER_SEL~SUM]}), Generate([*NATIVE_CJ_SET], {([Product].CurrentMember, [Education Level].CurrentMember)}))) ON ROWS from [Sales] ] at mondrian.resource.MondrianResource$_Def0.ex(MondrianResource.java:875) at mondrian.olap.Util.newInternal(Util.java:1024) at mondrian.olap.Util.newError(Util.java:1040) at mondrian.rolap.RolapConnection.execute(RolapConnection.java:402) at com.lucidera.clearview.service.impl.AnalysisAreaManager.executeQuery(Analysi sAreaManager.java:298) ... 28 more Caused by: java.lang.UnsupportedOperationException: mondrian.olap.fun.CrossJoinFunDef$ImmutableListMemberListMemberListCalc$1.su bList at mondrian.util.UnsupportedList.subList(UnsupportedList.java:71) at mondrian.olap.fun.HeadTailFunDef.head(HeadTailFunDef.java:102) at mondrian.olap.fun.HeadTailFunDef$1.evaluateList(HeadTailFunDef.java:67) at mondrian.calc.impl.AbstractListCalc.evaluate(AbstractListCalc.java:67) at mondrian.olap.ExpCacheDescriptor.evaluate(ExpCacheDescriptor.java:81) at mondrian.rolap.RolapEvaluator.getCachedResult(RolapEvaluator.java:650) at mondrian.olap.fun.CacheFunDef$1.evaluate(CacheFunDef.java:62) at mondrian.calc.impl.GenericCalc.evaluateIterable(GenericCalc.java:57) at mondrian.olap.fun.AbstractAggregateFunDef.evaluateCurrentIterable(AbstractAg gregateFunDef.java:72) at mondrian.olap.fun.SumFunDef$1.evaluateDouble(SumFunDef.java:80) at mondrian.calc.impl.AbstractDoubleCalc.evaluate(AbstractDoubleCalc.java:42) at mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:422) at mondrian.rolap.RolapResult.executeStripe(RolapResult.java:457) at mondrian.rolap.RolapResult.executeStripe(RolapResult.java:542) at mondrian.rolap.RolapResult.executeStripe(RolapResult.java:542) at mondrian.rolap.RolapResult.executeBody(RolapResult.java:357) at mondrian.rolap.RolapResult.<init>(RolapResult.java:225) at mondrian.rolap.RolapConnection.execute(RolapConnection.java:377) ... 29 more |