Project: Birt
Bug 304030 NPE when running reports with large volume of data
Reported: 2010-02-26 09:23:18 | Status: resolved fixed

Build Identifier: 2.5.2 and 2.5.1 We are getting this error while running reports with large volume(1.5 million rows) of data with both BIRT 2.5.1 and 2.5.2.The reports run fine with a small set of data. During rendering for our report we encounter a java exception after 10-12 minutes. The same report with similar dataset on BIRT 2.3.2 build used to show up under 4 minutes. org.eclipse.birt.report.engine.api.impl.RunTask doRun SEVERE: An error happened while running the report. Cause: Throwable occurred: 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:219) 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:232) at org.eclipse.birt.data.engine.executor.transform.ResultSetPopulator.reSetSmartCacheUsingOrderingInfo(ResultSetPopulator.java:209) 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:273) at org.eclipse.birt.data.engine.executor.transform.pass.ResultSetProcessUtil.populateResultSet(ResultSetProcessUtil.java:122) at org.eclipse.birt.data.engine.executor.transform.pass.ResultSetProcessUtil.doPopulate(ResultSetProcessUtil.java:85) at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.doPopulation(PassManager.java:286) at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.doMultiPass(PassManager.java:227) at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.pass(PassManager.java:95) at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.populateResultSet(PassManager.java:72) at org.eclipse.birt.data.engine.executor.transform.ResultSetPopulator.populateResultSet(ResultSetPopulator.java) at org.eclipse.birt.data.engine.executor.transform.CachedResultSet.<init>(CachedResultSet.java:134) at org.eclipse.birt.data.engine.executor.dscache.DataSourceQuery.execute(DataSourceQuery.java:143) at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.executeOdiQuery(PreparedOdaDSQuery.java:352) at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1036) at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:232) at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:147) 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:164) at org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.doExecuteQuery(DataGenerationEngine.java:71) at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:254) at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1825) at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80) at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.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:41) at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65) at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26) at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:137) at org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.resumeLayout(HTMLInlineStackingLM.java:111) at org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.layoutNodes(HTMLInlineStackingLM.java:160) at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26) at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:137) at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70) at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26) at org.eclipse.birt.report.engine.layout.html.HTMLTableLM.layoutChildren(HTMLTableLM.java:132) at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:137) at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70) at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90) at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:99) at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:258) at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:243) at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:82) Reproducible: Always

Files changed in fix:
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/data/util/DataType.java