Project: Birt
Bug 121954 Error pops up when bind a dataset without any record with Chart
Reported: 2005-12-22 22:16:31 | Status: closed fixed

Description: If there is a dataset returned no records, bind with chart, then error occurs. Steps to reproduce: 1.Create a datasource and dataset. Set filter to make return no record. 2.Pull a chart to the layout, bind with the dataset, error occurs. Error log: : + report : report 0 : data.engine.LoadReportDocumentError ( 2 &#65533; : org.eclipse.birt.data.engine.core.DataException: Result Data &#65533; at org.eclipse.birt.data.engine.impl.rd.RDLoad.getValue(RDLoad.java:191) at org.eclipse.birt.data.engine.impl.rd.ResultIterator2.getValue(ResultIterator2.java:168) at org.eclipse.birt.report.engine.data.dte.DteResultSet.evaluate(DteResultSet.java:149) at org.eclipse.birt.report.engine.extension.internal.RowSet.evaluate(RowSet.java:98) at org.eclipse.birt.chart.reportitem.BIRTDataRowEvaluator.evaluate(BIRTDataRowEvaluator.java:60) at org.eclipse.birt.chart.internal.factory.DataProcessor.mapToChartResultSet(DataProcessor.java:120) at org.eclipse.birt.chart.factory.Generator.bindData(Generator.java:558) at org.eclipse.birt.chart.reportitem.ChartReportItemPresentationImpl.onRowSets(ChartReportItemPresentationImpl.java:393) at org.eclipse.birt.report.engine.presentation.LocalizedEmitter.startExtendedContent(LocalizedEmitter.java:679) at org.eclipse.birt.report.engine.presentation.LocalizedEmitter.startForeign(LocalizedEmitter.java:449) at org.eclipse.birt.report.engine.presentation.ReportContentLoader$1.visitForeign(ReportContentLoader.java:842) at org.eclipse.birt.report.engine.content.impl.ForeignContent.accept(ForeignContent.java:60) at org.eclipse.birt.report.engine.presentation.ReportContentLoader$1.visit(ReportContentLoader.java:759) at org.eclipse.birt.report.engine.presentation.ReportContentLoader.startContent(ReportContentLoader.java:739) at org.eclipse.birt.report.engine.presentation.ReportContentLoader.loadFullContent(ReportContentLoader.java:261) at org.eclipse.birt.report.engine.presentation.ReportContentLoader.loadPage(ReportContentLoader.java:168) at org.eclipse.birt.report.engine.api.impl.RenderTask.doRender(RenderTask.java:197) at org.eclipse.birt.report.engine.api.impl.RenderTask.render(RenderTask.java:105) at org.eclipse.birt.report.services.ReportEngineService.renderReport(Unknown Source) at org.eclipse.birt.report.soapengine.processor.DocumentProcessor.doRenderReport(Unknown Source) at org.eclipse.birt.report.soapengine.processor.DocumentProcessor.process(Unknown Source) at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(Unknown Source) at sun.reflect.GeneratedMethodAccessor84.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:402) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:309) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:333) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:481) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:323) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:854) at org.eclipse.birt.report.soapengine.servlet.BirtSoapMessageDispatcherServlet.doPost(Unknown Source) at org.eclipse.birt.report.viewer.servlet.ViewerServlet.doPost(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.eclipse.tomcat.internal.EclipseErrorReportValve.invoke(EclipseErrorReportValve.java:153) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534) Caused by: java.io.EOFException at java.io.DataInputStream.readInt(DataInputStream.java:448) at java.io.ObjectInputStream$BlockDataInputStream.readInt(ObjectInputStream.java:2657) at java.io.ObjectInputStream.readInt(ObjectInputStream.java:900) at org.eclipse.birt.data.engine.impl.rd.RDLoad.getValue(RDLoad.java:177) ... 69 more

Files changed in fix:
chart/org.eclipse.birt.chart.engine/src/org/eclipse/birt/chart/factory/DataRowExpressionEvaluatorAdapter.java chart/org.eclipse.birt.chart.engine/src/org/eclipse/birt/chart/factory/IDataRowExpressionEvaluator.java chart/org.eclipse.birt.chart.engine/src/org/eclipse/birt/chart/internal/factory/SqlDataRowEvaluator.java chart/org.eclipse.birt.chart.reportitem/src/org/eclipse/birt/chart/reportitem/BIRTDataRowEvaluator.java chart/org.eclipse.birt.chart.ui/src/org/eclipse/birt/chart/ui/util/ChartUIUtil.java