Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
THRUST SERVICES & TOOLS
CLOUD EDITIONS
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
Error when no data available for crosstab
Hakan
Hi,
We have a report with four different crosstabs on it.
When this report is executed with such parameters that the underlying SQL does not return any data Birt throws the exception below. If I delete all but one of the crosstabs in the report, the exception does not occur.
Anyone with an idea on how to get around this problem ?
I have been trying to reproduce the problem in a different report based on the example database but not succeeded.
Thanks,
H?kan
org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report.
at org.eclipse.birt.report.service.ReportEngineService.throwDummyException(ReportEngineService.java:1104)
at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:934)
at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:973)
at org.eclipse.birt.report.service.actionhandler.BirtGetPageAllActionHandler.__execute(BirtGetPageAllActionHandler.java:131)
at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)
at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPageAll(BirtDocumentProcessor.java:183)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)
at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:851)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:257)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1764)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report.
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:196)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:928)
... 49 more
Caused by: java.lang.NullPointerException
at org.eclipse.birt.data.engine.olap.data.impl.dimension.DimensionFilterHelper.find(DimensionFilterHelper.java:73)
at org.eclipse.birt.data.engine.olap.data.impl.dimension.DimensionFilterHelper.find(DimensionFilterHelper.java:45)
at org.eclipse.birt.data.engine.olap.data.impl.dimension.Dimension.find(Dimension.java:269)
at org.eclipse.birt.data.engine.olap.data.impl.aggregation.filter.LevelFilterHelper.getSimpleFilterResult(LevelFilterHelper.java:456)
at org.eclipse.birt.data.engine.olap.data.impl.aggregation.filter.LevelFilterHelper.populatePositions(LevelFilterHelper.java:394)
at org.eclipse.birt.data.engine.olap.data.impl.aggregation.filter.LevelFilterHelper.(LevelFilterHelper.java:64)
at org.eclipse.birt.data.engine.olap.data.api.CubeQueryExecutorHelper.getFilterResult(CubeQueryExecutorHelper.java:811)
at org.eclipse.birt.data.engine.olap.data.api.CubeQueryExecutorHelper.onePassExecute(CubeQueryExecutorHelper.java:699)
at org.eclipse.birt.data.engine.olap.data.api.CubeQueryExecutorHelper.executeFactTableQuery(CubeQueryExecutorHelper.java:421)
at org.eclipse.birt.data.engine.olap.data.api.CubeQueryExecutorHelper.execute(CubeQueryExecutorHelper.java:354)
at org.eclipse.birt.data.engine.olap.query.view.QueryExecutor.populateRs(QueryExecutor.java:490)
at org.eclipse.birt.data.engine.olap.query.view.QueryExecutor.execute(QueryExecutor.java:153)
at org.eclipse.birt.data.engine.olap.query.view.BirtCubeView.createCubeCursor(BirtCubeView.java:201)
at org.eclipse.birt.data.engine.olap.query.view.BirtCubeView.getCubeCursor(BirtCubeView.java:182)
at org.eclipse.birt.data.engine.olap.impl.query.CubeQueryResults.createCursor(CubeQueryResults.java:296)
at org.eclipse.birt.data.engine.olap.impl.query.CubeQueryResults.getCubeCursor(CubeQueryResults.java:159)
at org.eclipse.birt.report.engine.data.dte.CubeResultSet.(CubeResultSet.java:98)
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteCube(DteDataEngine.java:237)
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:270)
at org.eclipse.birt.report.engine.executor.ExecutorManager$ExecutorContext.executeQuery(ExecutorManager.java:439)
at org.eclipse.birt.report.item.crosstab.core.re.executor.BaseCrosstabExecutor.executeQuery(BaseCrosstabExecutor.java:122)
at org.eclipse.birt.report.item.crosstab.core.re.executor.CrosstabReportItemExecutor.execute(CrosstabReportItemExecutor.java:102)
at org.eclipse.birt.report.engine.executor.ExtendedItemExecutor.execute(ExtendedItemExecutor.java:62)
at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)
at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)
at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)
at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)
at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)
at org.eclipse.birt.report.engine.layout.html.HTMLListLM.layoutChildren(HTMLListLM.java:72)
at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)
at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90)
at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:99)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:180)
... 51 more
Find more posts tagged with
Comments
mwilliams
I have not seen this issue before. You're not able to reproduce the error with the sample database? Are you doing any scripting on the crosstabs that would cause an issue if you had a null value passed to it?
Hakan
Hi,<br />
<br />
There are four crosstabs located in a list that is bound to a dataset.<br />
Each crosstab then have a filter referencing data._outer["typenumber"] i.e. each crosstab display their own view for a specific type number in each row of the list.<br />
<br />
If I remove this filter the exception does not occur.<br />
I have tried replacing the list with a table and creating a javascript variable that is set for each row in the table and then have the filter in the crosstab rely on this javascript variable instead but I got the same result.<br />
<br />
But what is even more confusing with this problem is that if I remove three out of four crosstabs from the list the exception also does not occur (even with the filter still on the crosstab).<br />
<br />
Any ideas ?<br />
<br />
Thanks,<br />
H?kan<br />
<br />
<br />
<br />
<blockquote class='ipsBlockquote' data-author="'mwilliams'" data-cid="81259" data-time="1312814861" data-date="08 August 2011 - 07:47 AM"><p>
I have not seen this issue before. You're not able to reproduce the error with the sample database? Are you doing any scripting on the crosstabs that would cause an issue if you had a null value passed to it?<br /></p></blockquote>
Hakan
[Problem solved]
It seems that the solution for this problem was quite simple ...
The report contained a list tied to a dataset. And in the list there were four crosstabs.
Each crosstab had a filter with second value 'data._outer["TypeNumber"]'. This used to work with earlier relases of birt (pre-2.6.2), but with this version it no longer worked for some reason.
After having changed this value in the filter to 'row._outer["TypeNumber"]' it now works even when there is no data in in the underlying dataset.
Thanks,
H?kan
mwilliams
Glad you found the solution. Let us know whenever you have questions!