Home
Analytics
BIRT 4.5 OutOfMemoryError: Java heap space
Istabrak
<p>Greetings to all,</p>
<p>I am running BIRT4.5 bundled with Eclipse.</p>
<p>Eclipse/BIRT are installed on my HP-Zbook laptop.</p>
<p>The input file is a csv file with 530 columns and 50k rows.</p>
<p>The report design has grouping and aggregations.</p>
<p> </p>
<p>After spending about 12 Hrs or more to manually prepare the report layout, I ran the report.</p>
<p>However, the report threw an exception on my Internet ExplorerV11 as seen below.</p>
<p>Is there a way to extend the memory of the BIRT and/or the Eclipse process?</p>
<p>If not, would it be possible to transfer the design file or the whole BIRT project to a more powerful machine and trying it there (without any redoing of the layout)?</p>
<p>Other options?</p>
<p>Please let me know.</p>
<p> </p>
<p>Thx & BR</p>
<p> </p>
<p>=========</p>
<p> </p>
<p><br><br><span style="font-size:10px;">org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report.<br>
at org.eclipse.birt.report.engine.api.impl.EngineTask.handleFatalExceptions(EngineTask.java:2383)<br>
at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:281)<br>
at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:89)<br>
at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1325)<br>
at org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:159)<br>
at org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81)<br>
at org.eclipse.birt.report.service.actionhandler.BirtGetPageActionHandler.__checkDocumentExists(BirtGetPageActionHandler.java:58)<br>
at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.prepareParameters(AbstractGetPageActionHandler.java:118)<br>
at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.__execute(AbstractGetPageActionHandler.java:103)<br>
at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)<br>
at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)<br>
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)<br>
at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPage(BirtDocumentProcessor.java:87)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br>
at java.lang.reflect.Method.invoke(Unknown Source)<br>
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)<br>
at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br>
at java.lang.reflect.Method.invoke(Unknown Source)<br>
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)<br>
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)<br>
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)<br>
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)<br>
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)<br>
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)<br>
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)<br>
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)<br>
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)<br>
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)<br>
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)<br>
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)<br>
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)<br>
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)<br>
at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)<br>
at org.eclipse.equinox.http.servlet.internal.HttpServiceRuntimeImpl$LegacyServlet.service(HttpServiceRuntimeImpl.java:1271)<br>
at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:162)<br>
at org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:63)<br>
at org.eclipse.equinox.http.servlet.internal.HttpServiceRuntimeImpl.doDispatch(HttpServiceRuntimeImpl.java:413)<br>
at org.eclipse.equinox.http.servlet.internal.HttpServiceRuntimeImpl.doDispatch(HttpServiceRuntimeImpl.java:341)<br>
at org.eclipse.equinox.http.servlet.internal.HttpServiceRuntimeImpl.doDispatch(HttpServiceRuntimeImpl.java:204)<br>
at org.eclipse.equinox.http.servlet.internal.servlet.ProxyServlet.processAlias(ProxyServlet.java:91)<br>
at org.eclipse.equinox.http.servlet.internal.servlet.ProxyServlet.service(ProxyServlet.java:70)<br>
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)<br>
at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:356)<br>
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)<br>
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)<br>
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)<br>
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)<br>
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)<br>
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)<br>
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)<br>
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)<br>
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)<br>
at org.eclipse.jetty.server.Server.handle(Server.java:497)<br>
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)<br>
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)<br>
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)<br>
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)<br>
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)<br>
at java.lang.Thread.run(Unknown Source)<br>
Caused by: java.lang.OutOfMemoryError: Java heap space<br>
at java.util.Arrays.copyOf(Unknown Source)<br>
at java.util.ArrayList.grow(Unknown Source)<br>
at java.util.ArrayList.ensureExplicitCapacity(Unknown Source)<br>
at java.util.ArrayList.ensureCapacityInternal(Unknown Source)<br>
at java.util.ArrayList.add(Unknown Source)<br>
at org.eclipse.datatools.connectivity.oda.flatfile.FlatFileQuery$FlatFileBufferedReader.readLine(FlatFileQuery.java:1089)<br>
at org.eclipse.datatools.connectivity.oda.flatfile.util.FlatFileDataReader.fetchQueriedDataFromFileToList(FlatFileDataReader.java:333)<br>
at org.eclipse.datatools.connectivity.oda.flatfile.util.FlatFileDataReader.getSourceData(FlatFileDataReader.java:109)<br>
at org.eclipse.datatools.connectivity.oda.flatfile.ResultSet.next(ResultSet.java:128)<br>
at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaResultSet.next(OdaResultSet.java:180)<br>
at org.eclipse.birt.data.engine.odaconsumer.ResultSet.fetch(ResultSet.java:138)<br>
at org.eclipse.birt.data.engine.executor.cache.OdiAdapter.fetch(OdiAdapter.java:214)<br>
at org.eclipse.birt.data.engine.executor.cache.RowResultSet.fetch(RowResultSet.java:145)<br>
at org.eclipse.birt.data.engine.executor.cache.RowResultSet.doNext(RowResultSet.java:118)<br>
at org.eclipse.birt.data.engine.executor.cache.RowResultSet.next(RowResultSet.java:96)<br>
at org.eclipse.birt.data.engine.executor.cache.ExpandableRowResultSet.next(ExpandableRowResultSet.java:63)<br>
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.populateData(SmartCacheHelper.java:318)<br>
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.initInstance(SmartCacheHelper.java:285)<br>
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.initOdaResult(SmartCacheHelper.java:154)<br>
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.getResultSetCache(SmartCacheHelper.java:79)<br>
at org.eclipse.birt.data.engine.executor.cache.SmartCache.(SmartCache.java:58)<br>
at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.populateOdiResultSet(PassUtil.java:99)<br>
at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.pass(PassUtil.java:62)<br>
at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.populateResultSetCacheInResultSetPopulator(PassManager.java:276)<br>
at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.populateDataSet(PassManager.java:238)<br>
at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.prepareDataSetResultSet(PassManager.java:98)<br>
at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.pass(PassManager.java:134)<br>
at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.populateResultSet(PassManager.java:74)<br>
at org.eclipse.birt.data.engine.executor.transform.ResultSetPopulator.populateResultSet(ResultSetPopulator.java:218)<br>
at org.eclipse.birt.data.engine.executor.transform.CachedResultSet.(CachedResultSet.java:102)<br>
at org.eclipse.birt.data.engine.executor.DataSourceQuery.execute(DataSourceQuery.java:1067)<br>
at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.executeOdiQuery(PreparedOdaDSQuery.java:607)</span><br>
</p>
<p> </p>
Find more posts tagged with
Comments
pricher
<p>Hi,</p>
<p> </p>
<p><span style="color:rgb(40,40,40);font-family:'Source Sans Pro', sans-serif;">Try editing the -Xmx value in your eclipse.ini file (it is located where you have BIRT installed) to a higher value. </span></p>
<p style="color:rgb(40,40,40);font-family:'Source Sans Pro', sans-serif;">Try changing it to: -Xmx1024m</p>
<p> </p>
<p style="color:rgb(40,40,40);font-family:'Source Sans Pro', sans-serif;">Then save and restart BIRT.</p>
<p style="color:rgb(40,40,40);font-family:'Source Sans Pro', sans-serif;"> </p>
<p style="color:rgb(40,40,40);font-family:'Source Sans Pro', sans-serif;">P.</p>
Istabrak
<p>Hi Pierre,</p>
<p>Thx for the quick reply.</p>
<p>I checked the ini file and as you can see below, it is already set to the value you recommended.</p>
<p>Do I need to increase even further like 2048m or so?</p>
<p> </p>
<p>Regards,</p>
<p> </p>
<p>Ista</p>
<p>======</p>
<p> </p>
<p><span style="font-size:10px;">-startup<br>
plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar<br>
--launcher.library<br>
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.300.v20150602-1417<br>
-product<br>
org.eclipse.epp.package.reporting.product<br>
--launcher.defaultAction<br>
openFile<br>
--launcher.XXMaxPermSize<br>
256M<br>
-showsplash<br>
org.eclipse.platform<br>
--launcher.XXMaxPermSize<br>
256m<br>
--launcher.defaultAction<br>
openFile<br>
--launcher.appendVmargs<br>
-vmargs<br>
-Dosgi.requiredJavaVersion=1.7<br>
-Xms256m<br>
-Xmx1024m</span></p>
pricher
<p>No harm in doing it.</p>