pentaho / mondrian

Mondrian is an Online Analytical Processing (OLAP) server that enables business users to analyze large quantities of data in real-time.
http://mondrian.pentaho.com/
Other
1.14k stars 724 forks source link

Null pointer exception while executing query on VirtualCube #15

Open maximecaron opened 12 years ago

maximecaron commented 12 years ago

I have a virtual cube (9119) defined on 2 cube and when i try to use one Measure ([Measures].[mssb_entitled_users])

I can also provide the Cubes schema if that can help!

The stack-trace is below:

org.apache.cxf.interceptor.Fault: Mondrian Error:java.util.concurrent.ExecutionException: mondrian.olap.MondrianException: Mondrian Error:Internal error: Error while executing query [with set [dateRange] as '{([Time].[Date].[2012].[August].[2012-08-29] : [Time].[Date].[2012].[September].[2012-09-05])}' set [Time-Date] as '[dateRange]' member [Time].[Date].[Time-Date] as 'Aggregate([Time-Date])' set [measures] as '{[Measures].[page_hits], [Measures].[mssb_report_downloads], [Measures].[mssb_report_hovers], [Measures].[mssb_report_previews], [Measures].[mssb_entitled_users], [Measures].[visitors]}' select [measures] ON COLUMNS, NON EMPTY TopCount([mssb_cie_page].[Value].Members, 1000, Sum([measures])) ON ROWS from [9119] where [Time].[Date].[Time-Date] ] at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:155) ~[cxf-bundle-2.2.6.jar:2.2.6] at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:85) ~[cxf-bundle-2.2.6.jar:2.2.6] at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:121) ~[cxf-bundle-2.2.6.jar:2.2.6] at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:60) ~[cxf-bundle-2.2.6.jar:2.2.6] at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75) ~[cxf-bundle-2.2.6.jar:2.2.6] at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) ~[cxf-bundle-2.2.6.jar:2.2.6] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) ~[na:1.6.0_25] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) ~[na:1.6.0_25] at java.util.concurrent.FutureTask.run(FutureTask.java:138) ~[na:1.6.0_25] at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) ~[cxf-bundle-2.2.6.jar:2.2.6] at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106) ~[cxf-bundle-2.2.6.jar:2.2.6] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243) ~[cxf-bundle-2.2.6.jar:2.2.6] at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109) [cxf-bundle-2.2.6.jar:2.2.6] at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:312) [cxf-bundle-2.2.6.jar:2.2.6] at msjava.cxfutils.transport.jetty.internal.MSJettyHTTPDestination.doService(MSJettyHTTPDestination.java:107) [msjava_cxfutils.jar:2.3] at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70) [cxf-bundle-2.2.6.jar:2.2.6] at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) [jetty-6.1.21.jar:6.1.21] at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) [jetty-6.1.21.jar:6.1.21] at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49) [jetty-6.1.21.jar:6.1.21] at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [jetty-6.1.21.jar:6.1.21] at org.mortbay.jetty.Server.handle(Server.java:326) [jetty-6.1.21.jar:6.1.21] at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536) [jetty-6.1.21.jar:6.1.21] at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930) [jetty-6.1.21.jar:6.1.21] at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) [jetty-6.1.21.jar:6.1.21] at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) [jetty-6.1.21.jar:6.1.21] at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405) [jetty-6.1.21.jar:6.1.21] at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) [jetty-6.1.21.jar:6.1.21] at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) [jetty-util-6.1.21.jar:6.1.21] Caused by: mondrian.olap.MondrianException: Mondrian Error:java.util.concurrent.ExecutionException: mondrian.olap.MondrianException: Mondrian Error:Internal error: Error while executing query [with set [dateRange] as '{([Time].[Date].[2012].[August].[2012-08-29] : [Time].[Date].[2012].[September].[2012-09-05])}' set [Time-Date] as '[dateRange]' member [Time].[Date].[Time-Date] as 'Aggregate([Time-Date])' set [measures] as '{[Measures].[page_hits], [Measures].[mssb_report_downloads], [Measures].[mssb_report_hovers], [Measures].[mssb_report_previews], [Measures].[mssb_entitled_users], [Measures].[visitors]}' select [measures] ON COLUMNS, NON EMPTY TopCount([mssb_cie_page].[Value].Members, 1000, Sum([measures])) ON ROWS from [9119] where [Time].[Date].[Time-Date] ] at mondrian.rolap.RolapResultShepherd.shepherdExecution(RolapResultShepherd.java:152) ~[mondrian.jar:na] at mondrian.rolap.RolapConnection.execute(RolapConnection.java:580) ~[mondrian.jar:na] at mondrian.olap4j.MondrianOlap4jCellSet.execute(MondrianOlap4jCellSet.java:88) ~[mondrian.jar:na] at mondrian.olap4j.MondrianOlap4jStatement.executeOlapQueryInternal(MondrianOlap4jStatement.java:408) ~[mondrian.jar:na] at mondrian.olap4j.MondrianOlap4jStatement.executeOlapQuery(MondrianOlap4jStatement.java:340) ~[mondrian.jar:na] at mondrian.olap4j.MondrianOlap4jStatement.executeOlapQuery(MondrianOlap4jStatement.java:426) ~[mondrian.jar:na] at com.ms.bi.seismic.db.MondrianChartDataDAO.getChartData(MondrianChartDataDAO.java:97) ~[ide-bin/:na] at com.ms.bi.seismic.ChartDataService.getChartData(ChartDataService.java:94) ~[ide-bin/:na] at com.ms.bi.seismic.ChartDataService.getChartData(ChartDataService.java:56) ~[ide-bin/:na] at sun.reflect.GeneratedMethodAccessor86.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_25] at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_25] at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173) ~[cxf-bundle-2.2.6.jar:2.2.6] at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89) ~[cxf-bundle-2.2.6.jar:2.2.6] ... 25 common frames omitted Caused by: java.util.concurrent.ExecutionException: mondrian.olap.MondrianException: Mondrian Error:Internal error: Error while executing query [with set [dateRange] as '{([Time].[Date].[2012].[August].[2012-08-29] : [Time].[Date].[2012].[September].[2012-09-05])}' set [Time-Date] as '[dateRange]' member [Time].[Date].[Time-Date] as 'Aggregate([Time-Date])' set [measures] as '{[Measures].[page_hits], [Measures].[mssb_report_downloads], [Measures].[mssb_report_hovers], [Measures].[mssb_report_previews], [Measures].[mssb_entitled_users], [Measures].[visitors]}' select [measures] ON COLUMNS, NON EMPTY TopCount([mssb_cie_page].[Value].Members, 1000, Sum([measures])) ON ROWS from [9119] where [Time].[Date].[Time-Date] ] at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) ~[na:1.6.0_25] at java.util.concurrent.FutureTask.get(FutureTask.java:83) ~[na:1.6.0_25] at mondrian.rolap.RolapResultShepherd.shepherdExecution(RolapResultShepherd.java:126) ~[mondrian.jar:na] ... 38 common frames omitted mondrian.olap.MondrianException: Mondrian Error:Internal error: Error while executing query [with set [dateRange] as '{([Time].[Date].[2012].[August].[2012-08-29] : [Time].[Date].[2012].[September].[2012-09-05])}' set [Time-Date] as '[dateRange]' member [Time].[Date].[Time-Date] as 'Aggregate([Time-Date])' set [measures] as '{[Measures].[page_hits], [Measures].[mssb_report_downloads], [Measures].[mssb_report_hovers], [Measures].[mssb_report_previews], [Measures].[mssb_entitled_users], [Measures].[visitors]}' select [measures] ON COLUMNS, NON EMPTY TopCount([mssb_cie_page].[Value].Members, 1000, Sum([measures])) ON ROWS from [9119] where [Time].[Date].[Time-Date] ] at mondrian.resource.MondrianResource$_Def0.ex(MondrianResource.java:912) ~[mondrian.jar:na] at mondrian.olap.Util.newInternal(Util.java:2038) ~[mondrian.jar:na] at mondrian.olap.Util.newError(Util.java:2054) ~[mondrian.jar:na] at mondrian.rolap.RolapConnection.executeInternal(RolapConnection.java:667) ~[mondrian.jar:na] at mondrian.rolap.RolapConnection.access$000(RolapConnection.java:52) ~[mondrian.jar:na] at mondrian.rolap.RolapConnection$1.call(RolapConnection.java:586) ~[mondrian.jar:na] at mondrian.rolap.RolapConnection$1.call(RolapConnection.java:585) ~[mondrian.jar:na] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) ~[na:1.6.0_25] at java.util.concurrent.FutureTask.run(FutureTask.java:138) ~[na:1.6.0_25] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) ~[na:1.6.0_25] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) ~[na:1.6.0_25] at java.lang.Thread.run(Thread.java:662) ~[na:1.6.0_25] Caused by: java.lang.NullPointerException: null at mondrian.rolap.RolapAggregationManager.makeRequest(RolapAggregationManager.java:168) ~[mondrian.jar:na] at mondrian.rolap.FastBatchingCellReader.get(FastBatchingCellReader.java:68) ~[mondrian.jar:na] at mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:657) ~[mondrian.jar:na] at mondrian.olap.fun.AggregateFunDef$AggregateCalc.aggregate(AggregateFunDef.java:159) ~[mondrian.jar:na] at mondrian.olap.fun.AggregateFunDef$AggregateCalc.evaluate(AggregateFunDef.java:74) ~[mondrian.jar:na] at mondrian.rolap.RolapProfilingEvaluator$ProfilingScalarCalc.evaluate(RolapProfilingEvaluator.java:226) ~[mondrian.jar:na] at mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:684) ~[mondrian.jar:na] at mondrian.calc.impl.ValueCalc.evaluate(ValueCalc.java:36) ~[mondrian.jar:na] at mondrian.olap.fun.FunUtil.evaluateSet(FunUtil.java:1536) ~[mondrian.jar:na] at mondrian.olap.fun.FunUtil.sumDouble(FunUtil.java:1449) ~[mondrian.jar:na] at mondrian.olap.fun.SumFunDef$2.evaluateDouble(SumFunDef.java:125) ~[mondrian.jar:na] at mondrian.calc.impl.AbstractDoubleCalc.evaluate(AbstractDoubleCalc.java:45) ~[mondrian.jar:na] at mondrian.olap.fun.FunUtil.evaluateMembers(FunUtil.java:420) ~[mondrian.jar:na] at mondrian.olap.fun.FunUtil.partiallySortMembers(FunUtil.java:701) ~[mondrian.jar:na] at mondrian.olap.fun.TopBottomCountFunDef$3.partiallySortList(TopBottomCountFunDef.java:140) ~[mondrian.jar:na] at mondrian.olap.fun.TopBottomCountFunDef$3.evaluateList(TopBottomCountFunDef.java:108) ~[mondrian.jar:na] at mondrian.calc.impl.AbstractListCalc.evaluateIterable(AbstractListCalc.java:71) ~[mondrian.jar:na] at mondrian.rolap.RolapResult.executeAxis(RolapResult.java:772) ~[mondrian.jar:na] at mondrian.rolap.RolapResult.evalLoad(RolapResult.java:615) ~[mondrian.jar:na] at mondrian.rolap.RolapResult.loadMembers(RolapResult.java:580) ~[mondrian.jar:na] at mondrian.rolap.RolapResult.(RolapResult.java:288) ~[mondrian.jar:na] at mondrian.rolap.RolapConnection.executeInternal(RolapConnection.java:633) ~[mondrian.jar:na] ... 8 common frames omitted

julianhyde commented 12 years ago

On Sep 6, 2012, at 8:29 AM, Maxime Caron notifications@github.com wrote:

I have a virtual cube (9119) defined on 2 cube and when i try to use one Measure ([Measures].[mssb_entitled_users])

(snip) Caused by: java.lang.NullPointerException: null at mondrian.rolap.RolapAggregationManager.makeRequest(RolapAggregationManager.java:168) ~[mondrian.jar:na] at mondrian.rolap.FastBatchingCellReader.get(FastBatchingCellReader.java:68) ~[mondrian.jar:na] at mondrian.rolap.RolapEvaluator.evaluateCurrent(RolapEvaluator.java:657) ~[mondrian.jar:na] at mondrian.olap.fun.AggregateFunDef$AggregateCalc.aggregate(AggregateFunDef.java:159) ~[mondrian.jar:na]

What version of Mondrian are you running?

Julian

julianhyde commented 12 years ago

PS Please log this as a jira case, with the full stack and Mondrian version.

Julian

maximecaron commented 12 years ago

Thanks a lot Julian I created the issue http://jira.pentaho.com/browse/MONDRIAN-1234

julianhyde commented 12 years ago

On Sep 6, 2012, at 11:41 AM, Maxime Caron notifications@github.com wrote:

Thanks a lot Julian I created the issue http://jira.pentaho.com/browse/MONDRIAN-1234

I found a minimal repro case on 3.4 branch. Turns out you need a virtual cube, aggregation over a list, a non-conforming dimension AND a distinct-count measure. Phew!

And you are correct -- ValidMeasure is the workaround.

Julian