Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
THRUST SERVICES & TOOLS
CLOUD EDITIONS
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
Strange ClassCastException on large resultset
kishore_r
I am getting a strange ClassCastException on reports with large resultsets. My report has a simple table with about 80 columns in it. When the resultset is above 5000 rows I get a strange ClassCastException. Initially, I thought it had something to do with the data but after some tests it became clear it had to do with the size of the resultset. The exception stack trace
java.lang.ClassCastException: java.lang.String
at org.eclipse.birt.data.engine.executor.cache.ResultObjectUtil.writeData(ResultObjectUtil.java:275)
at org.eclipse.birt.data.engine.executor.cache.ResultObjectUtil.writeData(ResultObjectUtil.java:228)
at org.eclipse.birt.data.engine.executor.cache.disk.DataFileWriter.write(DataFileWriter.java:104)
at org.eclipse.birt.data.engine.executor.cache.disk.RowFile.writeRowsToFile(RowFile.java:136)
at org.eclipse.birt.data.engine.executor.cache.disk.RowFile.writeRows(RowFile.java:103)
at org.eclipse.birt.data.engine.executor.cache.disk.DiskDirectExport.outputResultObjects(DiskDirectExport.java:87)
at org.eclipse.birt.data.engine.executor.cache.disk.DiskDataExport.innerExportRestData(DiskDataExport.java:159)
at org.eclipse.birt.data.engine.executor.cache.disk.DiskDirectExport.exportRestDataToDisk(DiskDirectExport.java:59)
at org.eclipse.birt.data.engine.executor.cache.disk.DiskCacheResultSet.processRestResultObjects(DiskCacheResultSet.java:78)
at org.eclipse.birt.data.engine.executor.cache.disk.DiskCache.<init>(DiskCache.java:105)
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.populateData(SmartCacheHelper.java:342)
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.initInstance(SmartCacheHelper.java:273)
at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.getResultSetCache(SmartCacheHelper.java:235)
at org.eclipse.birt.data.engine.executor.cache.SmartCache.<init>(SmartCache.java:74)
at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.populateOdiResultSet(PassUtil.java:111)
at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.pass(PassUtil.java:62)
at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.doSinglePass(PassManager.java:181)
at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.pass(PassManager.java:89)
at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.populateResultSet(PassManager.java:70)
at org.eclipse.birt.data.engine.executor.transform.ResultSetPopulator.populateResultSet(ResultSetPopulator.java:196)
at org.eclipse.birt.data.engine.executor.transform.CachedResultSet.<init>(CachedResultSet.java:156)
at org.eclipse.birt.data.engine.executor.CandidateQuery.execute(CandidateQuery.java:108)
at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor.executeOdiQuery(PreparedScriptDSQuery.java:223)
at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:904)
at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:233)
at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:161)
at org.eclipse.birt.report.engine.data.dte.QueryResultSet.<init>(QueryResultSet.java:92)
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:128)
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:248)
at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1736)
at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:77)
at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62)
at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:42)
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:45)
at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:33)
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:63)
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:101)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:151)
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:72)
at com.wwc.cps.session.BirtHelperAction.getReport(BirtHelperAction.java:101)
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:585)
When the resultset is smaller, the report runs just fine.
Any ideas on this issue are appreciated .. Thanks in advance.
Find more posts tagged with
Comments
kishore_r
Also, by reducing the number of columns in the resultset the report ran fine for a larger resultset. Seems like BIRT has some limitations on the (Number Of Columns) X (Rows in ResultSet). Would be interested in hearing other opinions on this issue.
Thanks in advance
coolguy
I also faced a similar issue. When the number of rows increased in the report, it thew ClassCastException. When I took a closer look, I found that I was actually setting a date column to a string variable. For smaller reports, the same report ran fine though. Hope it helps!
kishore_r
Does anyone have a workaround for this issue? I am having this issue again even after upgrading to v 2.5.