Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » 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 Go to next message
Boyd Nolan is currently offline 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 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

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 #882961 is a reply to message #882656] Thu, 07 June 2012 14:31 Go to previous messageGo to next message
Boyd Nolan is currently offline Boyd Nolan
Messages: 16
Registered: June 2012
Junior Member
Hi, Jason,
That's a good question. I've been able (with your help!) to get the BIRT plugin running in debug, and can see that the specific object coming in when it fails is a hashtable. The call to getDataType returns a -1 (unknown I assume?) on this object. Would that type of a response indicate the inbound object cannot be serialized?

I need to now go look in the report script dataset and see if I can determine what this object is and how it is being declared. If you have any other diagnosis suggestions I would appreciate hearing them. I'm hoping that if I can figure out how to make this data type / object recognizable, that it will fix this problem without having to somehow patch our BIRT implementation to work around it.

Thanks again for the help!

Boyd
Re: NPE in ObjectWriter.write using BIRT 2.6 [message #883102 is a reply to message #882961] Thu, 07 June 2012 21:18 Go to previous messageGo to next message
Boyd Nolan is currently offline Boyd Nolan
Messages: 16
Registered: June 2012
Junior Member
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 #883120 is a reply to message #883102] Thu, 07 June 2012 21:47 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

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 #883131 is a reply to message #883120] Thu, 07 June 2012 22:17 Go to previous messageGo to next message
Boyd Nolan is currently offline Boyd Nolan
Messages: 16
Registered: June 2012
Junior Member
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 #883135 is a reply to message #883131] Thu, 07 June 2012 22:26 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

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 #883183 is a reply to message #883135] Fri, 08 June 2012 01:56 Go to previous messageGo to next message
Boyd Nolan is currently offline Boyd Nolan
Messages: 16
Registered: June 2012
Junior Member
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 #883497 is a reply to message #883183] Fri, 08 June 2012 17:06 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

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 #884774 is a reply to message #883497] Mon, 11 June 2012 19:51 Go to previous messageGo to next message
Boyd Nolan is currently offline Boyd Nolan
Messages: 16
Registered: June 2012
Junior Member
Yes, I'll do that as soon as I am sure what is going on here. I appreciate the article reference and will see if that can help me to verify the proper setup of the classes.

I'm still not 100% certain that I have my debugging of the plugin set up correctly. It acts like I am still running the compiled jar file code, but referencing the source code I imported for display in the debugger. I'm concluding this based on the fact that when I make some changes to ObjectWriter to catch the exception and allow execution to continue, the same exception still occurs on the same line of code no matter what edits I make.

When I imported the source code into my report viewer project, it placed it in the plugins folder and I assumed it would pick that up for live debugging. Can you give me any guidance on the proper way to set this up so I can actually be debugging the live BIRT code? I have this nagging feeling that something else may be happening that I don't see due to a disconnect between the jar I am running and the source I am viewing.

Boyd
Re: NPE in ObjectWriter.write using BIRT 2.6 [message #884804 is a reply to message #884774] Mon, 11 June 2012 21:38 Go to previous messageGo to next message
Boyd Nolan is currently offline Boyd Nolan
Messages: 16
Registered: June 2012
Junior Member
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 #884834 is a reply to message #884804] Mon, 11 June 2012 23:20 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

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 #885088 is a reply to message #884834] Tue, 12 June 2012 12:49 Go to previous messageGo to next message
Boyd Nolan is currently offline Boyd Nolan
Messages: 16
Registered: June 2012
Junior Member
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 #885153 is a reply to message #885088] Tue, 12 June 2012 14:37 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

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 #885849 is a reply to message #885153] Wed, 13 June 2012 18:09 Go to previous messageGo to next message
Boyd Nolan is currently offline Boyd Nolan
Messages: 16
Registered: June 2012
Junior Member
Hi, Jason,
Your description definitely sounds like what is happening in my report. The source script dataset is large, and the report structure has some grouping, sorting and summations in it.

I added these two property settings into the beforeFactory method and it does not seem to have changed the behavior at all. I used the AppContext.get method to verify that the setting did make it into the report context. The setting gets placed into the context immediately upon submitting the parameters, then it still hits the DiskCache section and eventually ends up back in ObjectWriter again.

Is there any way to set these values globally as part of the application startup, like in web.xml?

Boyd
Re: NPE in ObjectWriter.write using BIRT 2.6 [message #885901 is a reply to message #885849] Wed, 13 June 2012 20:52 Go to previous messageGo to next message
Boyd Nolan is currently offline Boyd Nolan
Messages: 16
Registered: June 2012
Junior Member
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 #885913 is a reply to message #885901] Wed, 13 June 2012 21:19 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

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 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

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 #886003 is a reply to message #885913] Thu, 14 June 2012 02:53 Go to previous messageGo to next message
Boyd Nolan is currently offline Boyd Nolan
Messages: 16
Registered: June 2012
Junior Member
Hey, Jason,
Yes, we did try upgrading to an Indigo installation with the latest version of BIRT as a test and it behaves the same way in terms of the error.

Boyd
Re: NPE in ObjectWriter.write using BIRT 2.6 [message #886204 is a reply to message #886003] Thu, 14 June 2012 12:38 Go to previous messageGo to next message
Boyd Nolan is currently offline Boyd Nolan
Messages: 16
Registered: June 2012
Junior Member
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
Re: NPE in ObjectWriter.write using BIRT 2.6 [message #886332 is a reply to message #886204] Thu, 14 June 2012 18:41 Go to previous message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

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
Previous Topic:Multiple graphs per report
Next Topic:BIRT features
Goto Forum:
  


Current Time: Thu Oct 23 01:50:45 GMT 2014

Powered by FUDForum. Page generated in 0.03491 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software