Bug 432660 - Birt WebViewerExample mulit-thread bug
Summary: Birt WebViewerExample mulit-thread bug
Status: NEW
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: BIRT (show other bugs)
Version: 4.3.2   Edit
Hardware: PC Windows 7
: P3 critical (vote)
Target Milestone: ---   Edit
Assignee: Birt-Data-inbox@eclipse.org CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 429393
Blocks:
  Show dependency tree
 
Reported: 2014-04-11 23:21 EDT by chrew hun CLA
Modified: 2014-08-12 18:19 EDT (History)
2 users (show)

See Also:


Attachments
birt exceptions file (36.11 KB, text/plain)
2014-04-11 23:21 EDT, chrew hun CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description chrew hun CLA 2014-04-11 23:21:01 EDT
Created attachment 241909 [details]
birt exceptions file

I develop a report with bar chart by birt, and I use birt WebViewerExample as web server.there are some issues when I access my developed report.The way I access is  as follow:
<html>
   <frameset cols="20%,20%,20%,20%,20%">
  <frame src="http://localhost:8080/birt_viewer/frameset?__report=sdprov.rptdesign" />
  <frame src="http://localhost:8080/birt_viewer/frameset?__report=sdprov.rptdesign" />
  <frame src="http://localhost:8080/birt_viewer/frameset?__report=sdprov.rptdesign" />
  <frame src="http://localhost:8080/birt_viewer/frameset?__report=sdprov.rptdesign" />
  <frame src="http://localhost:8080/birt_viewer/frameset?__report=sdprov.rptdesign" />
</frameset>
</html>

I try to simulate concurrently accessing my report,but the exception is thrown the message that says "The viewing session is not available or has expired ".Now I know that Birt engine parse .rptdesign file and will generate a file named with .rptdocument and render the birt chart to svg image . Their parent directory associate with session id and the time when the URL request arrive the web server.
I try to use Batch script to open IE.Its content is 
for %%a in (1,2,3,4,5,6,7) do (
start "C:\Program Files\Internet Explorer" IEXPLORE.EXE http://localhost:8080/birt_viewer/frameset?__report=sdprov.rptdesign
)

I can get different sessionID to access my report ,but there are still some issues.

org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report. 
Show Exception Stack Trace 
Hide Exception Stack Trace  
Stack Trace:
 
org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report.
   at org.eclipse.birt.report.engine.api.impl.EngineTask.handleFatalExceptions(EngineTask.java:2363)
   at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:277)
   at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:86)
   at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1325)
   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.BirtGetPageActionHandler.__checkDocumentExists(BirtGetPageActionHandler.java:58)
   at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.prepareParameters(AbstractGetPageActionHandler.java:118)
   at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.__execute(AbstractGetPageActionHandler.java:103)
   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.handleGetPage(BirtDocumentProcessor.java:87)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   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.GeneratedMethodAccessor61.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   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 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
   at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864)
   at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
   at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
   at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
   at org.eclipse.birt.data.oda.pojo.querymodel.MethodSource.fetchValue(MethodSource.java:84)
   at org.eclipse.birt.data.oda.pojo.impl.internal.ResultSetFromPojoInstance.fetchColumnReferenceNodeValue(ResultSetFromPojoInstance.java:129)
   at org.eclipse.birt.data.oda.pojo.impl.internal.ResultSetFromPojoInstance.fetchReferenceValues(ResultSetFromPojoInstance.java:111)
   at org.eclipse.birt.data.oda.pojo.impl.internal.ResultSetFromPojoInstance.(ResultSetFromPojoInstance.java:51)
   at org.eclipse.birt.data.oda.pojo.impl.ResultSet.next(ResultSet.java:106)
   at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaResultSet.next(OdaResultSet.java:180)
   at org.eclipse.birt.data.engine.odaconsumer.ResultSet.fetch(ResultSet.java:138)
   at org.eclipse.birt.data.engine.executor.cache.OdiAdapter.fetch(OdiAdapter.java:214)
   at org.eclipse.birt.data.engine.executor.cache.RowResultSet.fetch(RowResultSet.java:145)
   at org.eclipse.birt.data.engine.executor.cache.RowResultSet.doNext(RowResultSet.java:118)
   at org.eclipse.birt.data.engine.executor.cache.RowResultSet.next(RowResultSet.java:96)
   at org.eclipse.birt.data.engine.executor.cache.ExpandableRowResultSet.next(ExpandableRowResultSet.java:63)
   at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.populateData(SmartCacheHelper.java:318)
   at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.initInstance(SmartCacheHelper.java:285)
   at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.initOdaResult(SmartCacheHelper.java:154)
   at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.getResultSetCache(SmartCacheHelper.java:79)
   at org.eclipse.birt.data.engine.executor.cache.SmartCache.(SmartCache.java:58)
   at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.populateOdiResultSet(PassUtil.java:99)
   at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.pass(PassUtil.java:62)
   at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.populateResultSetCacheInResultSetPopulator(PassManager.java:276)
   at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.populateDataSet(PassManager.java:238)
   at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.prepareDataSetResultSet(PassManager.java:98)
   at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.pass(PassManager.java:134)
   at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.populateResultSet(PassManager.java:74)
   at org.eclipse.birt.data.engine.executor.transform.ResultSetPopulator.populateResultSet(ResultSetPopulator.java:218)
   at org.eclipse.birt.data.engine.executor.transform.CachedResultSet.(CachedResultSet.java:101)
   at org.eclipse.birt.data.engine.executor.DataSourceQuery.execute(DataSourceQuery.java:1061)
   at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.executeOdiQuery(PreparedOdaDSQuery.java:503)
   at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1208)
   at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:233)
   at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:178)
   at org.eclipse.birt.report.engine.data.dte.QueryResultSet.(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:83)
   at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:275)
   at org.eclipse.birt.report.engine.executor.ExtendedGenerateExecutor.executeQueries(ExtendedGenerateExecutor.java:205)
   at org.eclipse.birt.report.engine.executor.ExtendedGenerateExecutor.execute(ExtendedGenerateExecutor.java:65)
   at org.eclipse.birt.report.engine.executor.ExtendedItemExecutor.execute(ExtendedItemExecutor.java:62)
   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.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)
   at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)
   at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)
   at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)
   at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)
   at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:249)
   at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:269)
... 49 more 
 
 Could any one  help me ? Thank you for replying
Comment 1 donino donino CLA 2014-04-13 04:44:03 EDT
It seems to be related to https://bugs.eclipse.org/bugs/show_bug.cgi?id=429393

You should try to replace a class of the runtime as suggested in this topic, and confirm if it solves the problem: http://www.eclipse.org/forums/index.php/t/644300/