Home » Archived » BIRT » NPE in ObjectWriter.write using BIRT 2.6(NPE in ObjectWriter.write using BIRT 2.6)
NPE in ObjectWriter.write using BIRT 2.6 [message #882435] |
Wed, 06 June 2012 13:07 |
Boyd Nolan Messages: 16 Registered: June 2012 |
Junior Member |
|
|
Hello, All,
I'm running into a Null Pointer Exception in ObjectWriter.write with a larger report and I hope some of you might be able to help me with it. The symptoms are very similar to problems reported a few years back in bugs such as 304030, 308438 and 336586. All these issues were fixed moving in to the 2.6.x versions of BIRT. We are using 2.6.0, however I have tested this using 2.6.2 and the problem still happens. I've tried the workarounds described in these bugs with no success.
My report is bound to a script dataset and the report works fine for smaller result sets of a few thousand rows. The dataset contains several standard database types and a few Java object fields. When run against a larger set of about 7000 rows the error occurs consistently. I can break the 7000 rows down into smaller chunks and the report completes successfully for all the data. It definitely only happens when the report is large enough for the Disk Cache to kick in.
The report design contains some confidential data, so I cannot attach the production versions here, however I am hoping some of you might be able to give me some guidance regarding either how to diagnose the source of the issue, or perhaps work around it. I'll be happy to answer any detailed implementation questions, and all advice is very welcome.
Boyd
I've included an example stack trace of the error:
22:00:35,859 SEVERE [ReportEngine] An error happened while running the report. Cause:
java.lang.NullPointerException
at org.eclipse.birt.data.engine.olap.data.util.ObjectWriter.write(ObjectWriter.java:45)
at org.eclipse.birt.data.engine.olap.data.util.StructureDiskArray.writeObject(StructureDiskArray.java:61)
at org.eclipse.birt.data.engine.olap.data.util.BaseDiskArray.add(BaseDiskArray.java:76)
at org.eclipse.birt.data.engine.olap.data.util.BufferedStructureArray.add(BufferedStructureArray.java:62)
at org.eclipse.birt.data.engine.executor.cache.disk.DiskCache.next(DiskCache.java:171)
at org.eclipse.birt.data.engine.executor.cache.disk.DiskCache.moveTo(DiskCache.java:229)
at org.eclipse.birt.data.engine.executor.cache.SmartCache.moveTo(SmartCache.java:171)
at org.eclipse.birt.data.engine.executor.cache.SmartRowResultSet.next(SmartRowResultSet.java:61)
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.populateData(SmartCacheHelper.java:311)
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.getResultSetCache(SmartCacheHelper.java:260)
at org.eclipse.birt.data.engine.executor.cache.SmartCache.<init>(SmartCache.java:109)
at org.eclipse.birt.data.engine.executor.transform.ResultSetPopulator.reSetCache(ResultSetPopulator.java:242)
at org.eclipse.birt.data.engine.executor.transform.ResultSetPopulator.reSetSmartCacheUsingOrderingInfo(ResultSetPopulator.java:219)
at org.eclipse.birt.data.engine.executor.transform.group.GroupInstanceSorter.doGroupSorting(GroupInstanceSorter.java:73)
at org.eclipse.birt.data.engine.executor.transform.group.GroupProcessorManager.doGroupSorting(GroupProcessorManager.java:99)
at org.eclipse.birt.data.engine.executor.transform.pass.ResultSetProcessUtil.doGroupSorting(ResultSetProcessUtil.java:276)
at org.eclipse.birt.data.engine.executor.transform.pass.ResultSetProcessUtil.populateResultSet(ResultSetProcessUtil.java:125)
at org.eclipse.birt.data.engine.executor.transform.pass.ResultSetProcessUtil.doPopulate(ResultSetProcessUtil.java:85)
at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.prepareQueryResultSet(PassManager.java:111)
at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.pass(PassManager.java:129)
at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.populateResultSet(PassManager.java:77)
at org.eclipse.birt.data.engine.executor.transform.ResultSetPopulator.populateResultSet(ResultSetPopulator.java:198)
at org.eclipse.birt.data.engine.executor.transform.CachedResultSet.<init>(CachedResultSet.java:188)
at org.eclipse.birt.data.engine.executor.CandidateQuery.execute(CandidateQuery.java:106)
at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor.executeOdiQuery(PreparedScriptDSQuery.java:223)
at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1045)
at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:232)
at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:159)
at org.eclipse.birt.report.engine.data.dte.QueryResultSet.<init>(QueryResultSet.java:98)
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:168)
at org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.doExecuteQuery(DataGenerationEngine.java:74)
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:265)
at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1875)
at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)
at org.eclipse.birt.report.engine.executor.ListItemExecutor.execute(ListItemExecutor.java:66)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)
at org.eclipse.birt.report.engine.internal.executor.emitter.ReportItemEmitterExecutor.execute(ReportItemEmitterExecutor.java:46)
at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)
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.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:258)
at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:252)
at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:85)
at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1307)
at org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:158)
at org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81)
at org.eclipse.birt.report.service.actionhandler.BirtChangeParameterActionHandler.runReport(BirtChangeParameterActionHandler.java:58)
at org.eclipse.birt.report.service.actionhandler.AbstractChangeParameterActionHandler.__execute(AbstractChangeParameterActionHandler.java:53)
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.handleChangeParameter(BirtDocumentProcessor.java:100)
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:637)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at net.executime.businesslogic.context.filter.ExecuTimeContextFilter.doFilterInternal(ExecuTimeContextFilter.java:61)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:722)
22:00:35,869 ERROR [STDERR] org.eclipse.birt.data.engine.core.DataException: A report document error occurred when getting the save stream.
Can not create entry named /DataEngine/NamingRelationbecause the archive file has been closed. System ID: null
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.data.engine.api.DataEngineContext.getOutputStream(DataEngineContext.java:339)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.data.engine.impl.DataEngineSession$ReportDocumentShutdownListener.saveNamingRelation(DataEngineSession.java:430)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.data.engine.impl.DataEngineSession$ReportDocumentShutdownListener.dataEngineShutdown(DataEngineSession.java:410)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.data.engine.impl.DataEngineImpl.shutdown(DataEngineImpl.java:568)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.shutdown(DataRequestSessionImpl.java:497)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.shutdown(AbstractDataEngine.java:348)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.shutdown(DataGenerationEngine.java:145)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.engine.executor.ExecutionContext.close(ExecutionContext.java:470)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.engine.api.impl.EngineTask.close(EngineTask.java:1461)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.engine.api.impl.RunTask.close(RunTask.java:300)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1327)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:158)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.service.actionhandler.BirtChangeParameterActionHandler.runReport(BirtChangeParameterActionHandler.java:58)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.service.actionhandler.AbstractChangeParameterActionHandler.__execute(AbstractChangeParameterActionHandler.java:53)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleChangeParameter(BirtDocumentProcessor.java:100)
22:00:35,869 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
22:00:35,869 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
22:00:35,869 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
22:00:35,869 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:601)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)
22:00:35,869 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
22:00:35,869 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
22:00:35,869 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
22:00:35,869 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:601)
22:00:35,869 ERROR [STDERR] at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
22:00:35,869 ERROR [STDERR] at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
22:00:35,869 ERROR [STDERR] at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
22:00:35,869 ERROR [STDERR] at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
22:00:35,869 ERROR [STDERR] at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
22:00:35,869 ERROR [STDERR] at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
22:00:35,869 ERROR [STDERR] at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
22:00:35,869 ERROR [STDERR] at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
22:00:35,869 ERROR [STDERR] at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)
22:00:35,869 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
22:00:35,869 ERROR [STDERR] at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
22:00:35,869 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
22:00:35,869 ERROR [STDERR] at net.executime.businesslogic.context.filter.ExecuTimeContextFilter.doFilterInternal(ExecuTimeContextFilter.java:61)
22:00:35,869 ERROR [STDERR] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
22:00:35,869 ERROR [STDERR] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
22:00:35,869 ERROR [STDERR] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
22:00:35,869 ERROR [STDERR] at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
22:00:35,869 ERROR [STDERR] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
22:00:35,869 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:191)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
22:00:35,869 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
22:00:35,869 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
22:00:35,869 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
22:00:35,869 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
22:00:35,869 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
22:00:35,869 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
22:00:35,869 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
22:00:35,869 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
22:00:35,869 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
22:00:35,869 ERROR [STDERR] at java.lang.Thread.run(Thread.java:722)
22:00:35,869 ERROR [STDERR] Caused by: java.io.IOException: Can not create entry named /DataEngine/NamingRelationbecause the archive file has been closed. System ID: null
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.core.archive.compound.ArchiveFile.createEntry(ArchiveFile.java:379)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.core.archive.compound.ArchiveWriter.openRandomAccessStream(ArchiveWriter.java:74)
22:00:35,869 ERROR [STDERR] at org.eclipse.birt.data.engine.api.DataEngineContext.getOutputStream(DataEngineContext.java:330)
22:00:35,869 ERROR [STDERR] ... 77 more
|
|
|
Re: NPE in ObjectWriter.write using BIRT 2.6 [message #882656 is a reply to message #882435] |
Wed, 06 June 2012 23:33 |
|
Boyd,
Are the Java Object types serializable?
Jason
On 6/6/2012 9:07 AM, Boyd Nolan wrote:
> Hello, All,
> I'm running into a Null Pointer Exception in ObjectWriter.write with a
> larger report and I hope some of you might be able to help me with it.
> The symptoms are very similar to problems reported a few years back in
> bugs such as 304030, 308438 and 336586. All these issues were fixed
> moving in to the 2.6.x versions of BIRT. We are using 2.6.0, however I
> have tested this using 2.6.2 and the problem still happens. I've tried
> the workarounds described in these bugs with no success.
>
> My report is bound to a script dataset and the report works fine for
> smaller result sets of a few thousand rows. The dataset contains several
> standard database types and a few Java object fields. When run against a
> larger set of about 7000 rows the error occurs consistently. I can break
> the 7000 rows down into smaller chunks and the report completes
> successfully for all the data. It definitely only happens when the
> report is large enough for the Disk Cache to kick in.
>
> The report design contains some confidential data, so I cannot attach
> the production versions here, however I am hoping some of you might be
> able to give me some guidance regarding either how to diagnose the
> source of the issue, or perhaps work around it. I'll be happy to answer
> any detailed implementation questions, and all advice is very welcome.
>
> Boyd
>
>
>
> I've included an example stack trace of the error:
>
> 22:00:35,859 SEVERE [ReportEngine] An error happened while running the
> report. Cause:
> java.lang.NullPointerException
> at
> org.eclipse.birt.data.engine.olap.data.util.ObjectWriter.write(ObjectWriter.java:45)
>
> at
> org.eclipse.birt.data.engine.olap.data.util.StructureDiskArray.writeObject(StructureDiskArray.java:61)
>
> at
> org.eclipse.birt.data.engine.olap.data.util.BaseDiskArray.add(BaseDiskArray.java:76)
>
> at
> org.eclipse.birt.data.engine.olap.data.util.BufferedStructureArray.add(BufferedStructureArray.java:62)
>
> at
> org.eclipse.birt.data.engine.executor.cache.disk.DiskCache.next(DiskCache.java:171)
>
> at
> org.eclipse.birt.data.engine.executor.cache.disk.DiskCache.moveTo(DiskCache.java:229)
>
> at
> org.eclipse.birt.data.engine.executor.cache.SmartCache.moveTo(SmartCache.java:171)
>
> at
> org.eclipse.birt.data.engine.executor.cache.SmartRowResultSet.next(SmartRowResultSet.java:61)
>
> at
> org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.populateData(SmartCacheHelper.java:311)
>
> at
> org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.getResultSetCache(SmartCacheHelper.java:260)
>
> at
> org.eclipse.birt.data.engine.executor.cache.SmartCache.<init>(SmartCache.java:109)
>
> at
> org.eclipse.birt.data.engine.executor.transform.ResultSetPopulator.reSetCache(ResultSetPopulator.java:242)
>
> at
> org.eclipse.birt.data.engine.executor.transform.ResultSetPopulator.reSetSmartCacheUsingOrderingInfo(ResultSetPopulator.java:219)
>
> at
> org.eclipse.birt.data.engine.executor.transform.group.GroupInstanceSorter.doGroupSorting(GroupInstanceSorter.java:73)
>
> at
> org.eclipse.birt.data.engine.executor.transform.group.GroupProcessorManager.doGroupSorting(GroupProcessorManager.java:99)
>
> at
> org.eclipse.birt.data.engine.executor.transform.pass.ResultSetProcessUtil.doGroupSorting(ResultSetProcessUtil.java:276)
>
> at
> org.eclipse.birt.data.engine.executor.transform.pass.ResultSetProcessUtil.populateResultSet(ResultSetProcessUtil.java:125)
>
> at
> org.eclipse.birt.data.engine.executor.transform.pass.ResultSetProcessUtil.doPopulate(ResultSetProcessUtil.java:85)
>
> at
> org.eclipse.birt.data.engine.executor.transform.pass.PassManager.prepareQueryResultSet(PassManager.java:111)
>
> at
> org.eclipse.birt.data.engine.executor.transform.pass.PassManager.pass(PassManager.java:129)
>
> at
> org.eclipse.birt.data.engine.executor.transform.pass.PassManager.populateResultSet(PassManager.java:77)
>
> at
> org.eclipse.birt.data.engine.executor.transform.ResultSetPopulator.populateResultSet(ResultSetPopulator.java:198)
>
> at
> org.eclipse.birt.data.engine.executor.transform.CachedResultSet.<init>(CachedResultSet.java:188)
>
> at
> org.eclipse.birt.data.engine.executor.CandidateQuery.execute(CandidateQuery.java:106)
>
> at
> org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor.executeOdiQuery(PreparedScriptDSQuery.java:223)
>
> at
> org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1045)
>
> at
> org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:232)
>
> at
> org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:159)
>
> at
> org.eclipse.birt.report.engine.data.dte.QueryResultSet.<init>(QueryResultSet.java:98)
>
> at
> org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:168)
>
> at
> org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.doExecuteQuery(DataGenerationEngine.java:74)
>
> at
> org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:265)
>
> at
> org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1875)
>
> at
> org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)
>
> at
> org.eclipse.birt.report.engine.executor.ListItemExecutor.execute(ListItemExecutor.java:66)
>
> at
> org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)
>
> at
> org.eclipse.birt.report.engine.internal.executor.emitter.ReportItemEmitterExecutor.execute(ReportItemEmitterExecutor.java:46)
>
> at
> org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)
>
> at
> org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)
>
> 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.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:258)
>
> at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:252)
> at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:85)
> at
> org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1307)
>
> at
> org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:158)
>
> at
> org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81)
>
> at
> org.eclipse.birt.report.service.actionhandler.BirtChangeParameterActionHandler.runReport(BirtChangeParameterActionHandler.java:58)
>
> at
> org.eclipse.birt.report.service.actionhandler.AbstractChangeParameterActionHandler.__execute(AbstractChangeParameterActionHandler.java:53)
>
> 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.handleChangeParameter(BirtDocumentProcessor.java:100)
>
> 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:637)
> at
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> at
> org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
> at
> org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
> at
> net.executime.businesslogic.context.filter.ExecuTimeContextFilter.doFilterInternal(ExecuTimeContextFilter.java:61)
>
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>
> at
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
>
> at
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
> at
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
> at
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
>
> at
> org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:191)
>
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
>
> at
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
>
> at
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
>
> at
> org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
>
> at
> org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
>
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>
> at
> org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
>
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
>
> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> at java.lang.Thread.run(Thread.java:722)
> 22:00:35,869 ERROR [STDERR]
> org.eclipse.birt.data.engine.core.DataException: A report document error
> occurred when getting the save stream.
> Can not create entry named /DataEngine/NamingRelationbecause the archive
> file has been closed. System ID: null
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.data.engine.api.DataEngineContext.getOutputStream(DataEngineContext.java:339)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.data.engine.impl.DataEngineSession$ReportDocumentShutdownListener.saveNamingRelation(DataEngineSession.java:430)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.data.engine.impl.DataEngineSession$ReportDocumentShutdownListener.dataEngineShutdown(DataEngineSession.java:410)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.data.engine.impl.DataEngineImpl.shutdown(DataEngineImpl.java:568)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.shutdown(DataRequestSessionImpl.java:497)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.shutdown(AbstractDataEngine.java:348)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.shutdown(DataGenerationEngine.java:145)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.engine.executor.ExecutionContext.close(ExecutionContext.java:470)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.engine.api.impl.EngineTask.close(EngineTask.java:1461)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.engine.api.impl.RunTask.close(RunTask.java:300)
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1327)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:158)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.service.actionhandler.BirtChangeParameterActionHandler.runReport(BirtChangeParameterActionHandler.java:58)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.service.actionhandler.AbstractChangeParameterActionHandler.__execute(AbstractChangeParameterActionHandler.java:53)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleChangeParameter(BirtDocumentProcessor.java:100)
>
> 22:00:35,869 ERROR [STDERR] at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 22:00:35,869 ERROR [STDERR] at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>
> 22:00:35,869 ERROR [STDERR] at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
> 22:00:35,869 ERROR [STDERR] at
> java.lang.reflect.Method.invoke(Method.java:601)
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)
>
> 22:00:35,869 ERROR [STDERR] at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 22:00:35,869 ERROR [STDERR] at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>
> 22:00:35,869 ERROR [STDERR] at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
> 22:00:35,869 ERROR [STDERR] at
> java.lang.reflect.Method.invoke(Method.java:601)
> 22:00:35,869 ERROR [STDERR] at
> org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
> 22:00:35,869 ERROR [STDERR] at
> org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
> 22:00:35,869 ERROR [STDERR] at
> org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
> 22:00:35,869 ERROR [STDERR] at
> org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
> 22:00:35,869 ERROR [STDERR] at
> org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
> 22:00:35,869 ERROR [STDERR] at
> org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)
>
> 22:00:35,869 ERROR [STDERR] at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> 22:00:35,869 ERROR [STDERR] at
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
>
> 22:00:35,869 ERROR [STDERR] at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68)
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
> 22:00:35,869 ERROR [STDERR] at
> net.executime.businesslogic.context.filter.ExecuTimeContextFilter.doFilterInternal(ExecuTimeContextFilter.java:61)
>
> 22:00:35,869 ERROR [STDERR] at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>
> 22:00:35,869 ERROR [STDERR] at
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
>
> 22:00:35,869 ERROR [STDERR] at
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
> 22:00:35,869 ERROR [STDERR] at
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>
> 22:00:35,869 ERROR [STDERR] at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
> 22:00:35,869 ERROR [STDERR] at
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:191)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
>
> 22:00:35,869 ERROR [STDERR] at
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
>
> 22:00:35,869 ERROR [STDERR] at
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
>
> 22:00:35,869 ERROR [STDERR] at
> org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
>
> 22:00:35,869 ERROR [STDERR] at
> org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>
> 22:00:35,869 ERROR [STDERR] at
> org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
> 22:00:35,869 ERROR [STDERR] at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
> 22:00:35,869 ERROR [STDERR] at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
>
> 22:00:35,869 ERROR [STDERR] at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> 22:00:35,869 ERROR [STDERR] at java.lang.Thread.run(Thread.java:722)
> 22:00:35,869 ERROR [STDERR] Caused by: java.io.IOException: Can not
> create entry named /DataEngine/NamingRelationbecause the archive file
> has been closed. System ID: null
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.core.archive.compound.ArchiveFile.createEntry(ArchiveFile.java:379)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.core.archive.compound.ArchiveWriter.openRandomAccessStream(ArchiveWriter.java:74)
>
> 22:00:35,869 ERROR [STDERR] at
> org.eclipse.birt.data.engine.api.DataEngineContext.getOutputStream(DataEngineContext.java:330)
>
> 22:00:35,869 ERROR [STDERR] ... 77 more
>
|
|
| | |
Re: NPE in ObjectWriter.write using BIRT 2.6 [message #883120 is a reply to message #883102] |
Thu, 07 June 2012 21:47 |
|
Boyd,
If it is serializable it should be able to cache to disk. I believe
that is only real constraint. You can also change settings to use more
memory before writing to disk if need be.
Jason
On 6/7/2012 5:18 PM, Boyd Nolan wrote:
> I can definitely confirm now that this exception we are getting is due
> to the objects being stored in the script dataset used as source for the
> BIRT report. The first failure was a hashtable stored in a field, and
> after removing that from the dataset it started failing the same way
> with a custom class.
>
> Are there some guidelines regarding what types of objects can be
> supported, or how to ensure that a custom object can be cached when BIRT
> needs to use the disk cache?
>
> This is a big production frustration because reports that have worked
> for a long time are suddenly breaking when the dataset size crosses the
> threshold that requires the disk cache.
> Any information you can share or point me to would be greatly appreciated.
>
> Boyd
|
|
| |
Re: NPE in ObjectWriter.write using BIRT 2.6 [message #883135 is a reply to message #883131] |
Thu, 07 June 2012 22:26 |
|
A hash table is serializable but are the objects you are putting in them
serializable? Take a look at this thread:
http://www.javapractices.com/topic/TopicAction.do?Id=45
Jason
On 6/7/2012 6:17 PM, Boyd Nolan wrote:
> Thanks, Jason,
> Any idea what criteria defines if a particular object or class is
> serializeable? The hashtable is an internal java data structure, so I
> don't know how I could go about modifying that entity to make it
> serializable.
>
> If you were creating a new class that you intended to use in a field for
> a BIRT report (general question to all), what would you do to ensure
> that BIRT could serialize it to disk?
>
> Boyd
|
|
| |
Re: NPE in ObjectWriter.write using BIRT 2.6 [message #883497 is a reply to message #883183] |
Fri, 08 June 2012 17:06 |
|
Try something like:
http://www.mkyong.com/java/how-to-write-an-object-to-file-in-java/
Can you open a bugzilla for the error all the same so we can implement a
better log message for this.
Jason
On 6/7/2012 9:56 PM, Boyd Nolan wrote:
> Another good question, thanks Jason.
>
> I've not checked all the custom classes, however the Hash Map I have
> been discussing is constructed using a String and another class that
> appears to be fully serializable. I think I may try temporarily changing
> the Hash Map to just be a pair of strings and see if that changes the
> behavior.
>
> I think I need to find a standalone test of the serializableness (if
> that is a word) of an object to make it faster to confirm this.
>
> It would be great if there were some way that BIRT could give a more
> informative indicator of the real problem in this case...the null
> pointer exception sure sends you down the rabbit hole!
>
> Boyd
>
>
|
|
| | |
Re: NPE in ObjectWriter.write using BIRT 2.6 [message #884834 is a reply to message #884804] |
Mon, 11 June 2012 23:20 |
|
Boyd,
Do you have a way of reproducing the error in the designer?
Jason
On 6/11/2012 5:38 PM, Boyd Nolan wrote:
> I'm likely not understanding how this is supposed to work, but I don't
> see how the serialization settings on the class would allow this
> particular part of the code in the disk caching to work.
> ObjectWriter.write calls IOUtil.getRandomWriter, which only recognizes
> these data types:
>
> case DataType.BOOLEAN_TYPE :
> case DataType.INTEGER_TYPE :
> case DataType.BYTES_TYPE:
> case DataType.DOUBLE_TYPE :
> case DataType.STRING_TYPE :
> case DataType.DATE_TYPE :
> case DataType.BLOB_TYPE :
> case DataType.BIGDECIMAL_TYPE :
> case DataType.SQL_DATE_TYPE :
> case DataType.SQL_TIME_TYPE :
>
> When anything outside of these datatypes is passed in (in particular the
> data type unknown, -1, value), a null is returned for the writer, which
> then triggers the NPE when this statement is called in ObjectWriter.write:
>
> writer.write( file, obj );
>
> I don't see how this part of the disk caching logic could ever work with
> data types outside the list shown above. This is all coming from the
> StructureDiskArray class when it persists the cachedobjects.
>
> I'm hoping there is something obvious I am missing...is this a
> limitation in BIRT, or am I missing something really obvious?
>
> Boyd
>
>
|
|
| |
Re: NPE in ObjectWriter.write using BIRT 2.6 [message #885153 is a reply to message #885088] |
Tue, 12 June 2012 14:37 |
|
Boyd,
Can you try to put something like the following in the beforeFactory of
the report?
reportContext.getAppContext().put("org.eclipse.birt.data.cache.memory",
new Integer(-1))
You also may want to experiment with setting:
"org.eclipse.birt.data.query.ResultBufferSize" to 0 first and then some
high value( integer which represents megabytes).
here is a bit of explanation on the caching:
Caching only occurs when multiple passes of the data are required or
datasets are used multiple times
If you set this value below, to some value and your data set execeeds it
the data will start to write to disk.
/**
* Indicate the size of data cached for each result set.We only accept
non-negative integer as input,
* the unit of which would be MB.
* If this setting is 0, all temporary rows will be cached in memory
during query processing.
*/
public static String MEMORY_BUFFER_SIZE =
"org.eclipse.birt.data.query.ResultBufferSize";
This happens for grouping and aggregations and will create the files in
the temp directory under DataEngine_code/BirtDataTempcode where code is
unique. You set the value in MB.
By default if you re-use a data set a different cache is created of the
processed results in the directory:
DataEngine_code/DataSetCacheObject_code/multiple files
This operation is written to disk. If you set
reportContext.getAppContext().put("org.eclipse.birt.data.cache.memory",
new Integer(-1)) All of the rows will be wriitten to memory instead of
the above files and nothing will get written to
DataEngine_code/DataSetCacheObject_code
public static String MEMORY_DATA_SET_CACHE =
"org.eclipse.birt.data.cache.memory";
0 value will just write to disk, postive value will only write that
number of rows to memory.
Jason
On 6/12/2012 8:49 AM, Boyd Nolan wrote:
> I've not figured out any way to get the report to run/preview in the
> designer, since it relies on a script dataset that is generated /
> populated at run time of the application. Even the presentation of the
> parameters is dependent on run-time information based on user
> authentication.
>
> Is there any way you are aware of to completely disable this disk
> caching activity in BIRT?
> Boyd
|
|
| | |
Re: NPE in ObjectWriter.write using BIRT 2.6 [message #885913 is a reply to message #885901] |
Wed, 13 June 2012 21:19 |
|
If you are using the viewer, I think the only way is to change the
source. Any chance you can try 3.7.2 and see if you get this error?
Jason
On 6/13/2012 4:52 PM, Boyd Nolan wrote:
> Jason,
> After some more testing, it turns out that while the
> org.eclipse.birt.data.cache.memory setting does not seem to have any
> affect, the org.eclipse.birt.data.query.ResultBufferSize setting
> definitely does. Once I set this to a higher megabyte value, the report
> skips the disk caching phase and completes.
>
> Is it possible to set the ResultBufferSize globally at startup?
>
> Boyd
|
|
|
Re: NPE in ObjectWriter.write using BIRT 2.6 [message #885923 is a reply to message #885913] |
Wed, 13 June 2012 21:36 |
|
Actually you may be able to do this with setting your appcontext key
like the following:
http://wiki.eclipse.org/Adding_an_Object_to_the_Application_Context_for_the_Viewer_%28BIRT%29
Jason
On 6/13/2012 5:19 PM, Jason Weathersby wrote:
>
> If you are using the viewer, I think the only way is to change the
> source. Any chance you can try 3.7.2 and see if you get this error?
>
> Jason
>
> On 6/13/2012 4:52 PM, Boyd Nolan wrote:
>> Jason,
>> After some more testing, it turns out that while the
>> org.eclipse.birt.data.cache.memory setting does not seem to have any
>> affect, the org.eclipse.birt.data.query.ResultBufferSize setting
>> definitely does. Once I set this to a higher megabyte value, the report
>> skips the disk caching phase and completes.
>>
>> Is it possible to set the ResultBufferSize globally at startup?
>>
>> Boyd
>
|
|
| | |
Re: NPE in ObjectWriter.write using BIRT 2.6 [message #886332 is a reply to message #886204] |
Thu, 14 June 2012 18:41 |
|
Thanks for the information. If you get to try it on 3.7 let us know.
Jason
On 6/14/2012 8:38 AM, Boyd Nolan wrote:
> Jason,
> I need to revert my previous statement about testing BIRT 3.7. We tried
> to get it working, but the upgrade to Indigo was too big of a change in
> our current environment and we never fully got it working. So, I cannot
> say for certain if the same problem exists in the current release or not.
>
> Boyd
|
|
|
Goto Forum:
Current Time: Thu Sep 26 10:49:02 GMT 2024
Powered by FUDForum. Page generated in 0.06147 seconds
|