NullPointerException при использовании Агрегации RunningCount с Engine Engine - PullRequest
0 голосов
/ 03 января 2012

Я пытаюсь обновить приложение до версии BIRT 3.7.1.В настоящее время я использую версию 2.6.0.

Я использую последнюю стабильную версию 3.7.1.

Во время тестирования у меня возникла исключительная ситуация с отчетом, использующимсерийный номер (Агрегация счетчиков).Это исключение возникает, когда я использую отчет с API механизма отчетов, если я использую веб-средство просмотра, отчет работает нормально.

Я приложил небольшой тестовый пример, чтобы воссоздать проблему.Это включает в себя файл дизайна отчета и класс, в котором я использую ReportEngine для создания отчета.

Пожалуйста, найдите журнал ошибок ниже:

Jan 3, 2012 4:34:42 PM org.eclipse.birt.report.engine.api.impl.RunAndRenderTask doRun
SEVERE: An error happened while running the report. Cause:
java.lang.NullPointerException
    at org.eclipse.birt.core.util.IOUtil.writeInt(IOUtil.java:226)
    at org.eclipse.birt.core.util.IOUtil.writeObject(IOUtil.java:674)
    at org.eclipse.birt.data.engine.executor.transform.SimpleGroupCalculator.next(SimpleGroupCalculator.java:233)
    at org.eclipse.birt.data.engine.executor.transform.SimpleResultSet.next(SimpleResultSet.java:562)
    at org.eclipse.birt.data.engine.executor.transform.ResultSetWrapper.next(ResultSetWrapper.java:81)
    at org.eclipse.birt.data.engine.impl.ResultIterator.hasNextRow(ResultIterator.java:584)
    at org.eclipse.birt.data.engine.impl.ResultIterator.nextRow(ResultIterator.java:525)
    at org.eclipse.birt.data.engine.impl.ResultIterator.next(ResultIterator.java:475)
    at org.eclipse.birt.report.engine.data.dte.QueryResultSet.next(QueryResultSet.java:191)
    at org.eclipse.birt.report.engine.executor.ListingElementExecutor.hasNextChild(ListingElementExecutor.java:244)
    at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.hasNextChild(WrappedReportItemExecutor.java:86)
    at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.hasNextChild(WrappedReportItemExecutor.java:86)
    at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:62)
    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:140)
    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:92)
    at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:180)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
    at com.eclipse.birt.test.RunningCountFieldTest.main(RunningCountFieldTest.java:52)
Exception in thread "main" org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report.
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:196)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
    at com.eclipse.birt.test.RunningCountFieldTest.main(RunningCountFieldTest.java:52)
Caused by: java.lang.NullPointerException
    at org.eclipse.birt.core.util.IOUtil.writeInt(IOUtil.java:226)
    at org.eclipse.birt.core.util.IOUtil.writeObject(IOUtil.java:674)
    at org.eclipse.birt.data.engine.executor.transform.SimpleGroupCalculator.next(SimpleGroupCalculator.java:233)
    at org.eclipse.birt.data.engine.executor.transform.SimpleResultSet.next(SimpleResultSet.java:562)
    at org.eclipse.birt.data.engine.executor.transform.ResultSetWrapper.next(ResultSetWrapper.java:81)
    at org.eclipse.birt.data.engine.impl.ResultIterator.hasNextRow(ResultIterator.java:584)
    at org.eclipse.birt.data.engine.impl.ResultIterator.nextRow(ResultIterator.java:525)
    at org.eclipse.birt.data.engine.impl.ResultIterator.next(ResultIterator.java:475)
    at org.eclipse.birt.report.engine.data.dte.QueryResultSet.next(QueryResultSet.java:191)
    at org.eclipse.birt.report.engine.executor.ListingElementExecutor.hasNextChild(ListingElementExecutor.java:244)
    at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.hasNextChild(WrappedReportItemExecutor.java:86)
    at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.hasNextChild(WrappedReportItemExecutor.java:86)
    at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:62)
    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:140)
    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:92)
    at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:180)
    ... 2 more

Вы можете найти пример программы длявоссоздайте проблему в GitHub .

Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 08 июня 2012

Я решаю эту проблему, разделяя задачи run и render на Report Engine API.

Вместо использования IRunAndRenderTask task = engine.createRunAndRenderTask(design); запустите одновременно IRunTask runTask = engine.createRunTask(design); и IRenderTask renderTask = engine.createRenderTask(iReportDocument);.

...