Project: Birt
Bug 180835 Modify the expression of level will lead the exceptions or empty content in level[1102]
Reported: 2007-04-03 20:58:12 | Status: closed fixed

Description: Modify the expression of level will lead the exceptions or empty content in level[1102] Build number: 2.2.0.v20070404-0630 Steps to reproduce: Scenario1 1, Open the attached report design 2, Modify the Level CUSTOMER_REGION'S expression to:dimension["Customer"]["CUSTOMER_REGION1"] 3, Preview the results 4, Back to the layout and modify the CUSTOMER_REGION level in cube to: CUSTOMER_REGION1 5, Preview the results Scenario2: After step5, change the expression in x-tab and name of the level in cube back to CUSTOMER_REGION and preview the results Expected result: 1, After step3, an exception occurs tell user the binding of level is incorrect 2, After step5, No exception occurs, the preview should be successful 3, After scenario2, The result is as same as the step5 Actual result: After step3, the content of level is disappeared After step5, Exception occurs Error log: org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report; nested exception is: java.lang.ArrayIndexOutOfBoundsException: -1 Show Exception Stack Trace Hide Exception Stack Trace Stack Trace: org.eclipse.birt.data.engine.olap.cursor.ResultSetFetcher.getValue(ResultSetFetcher.java:56) org.eclipse.birt.data.engine.olap.cursor.EdgeInfoGenerator.dim_getCurrentMember(EdgeInfoGenerator.java:436) org.eclipse.birt.data.engine.olap.driver.DimensionAxis.getCurrentMember(DimensionAxis.java:292) org.eclipse.birt.data.engine.olap.cursor.DimensionAccessor.getObject(DimensionAccessor.java:222) org.eclipse.birt.data.engine.olap.cursor.AbstractCursorSupport.getObject(AbstractCursorSupport.java:382) org.eclipse.birt.data.engine.olap.script.JSLevelObject.getKeyValue(JSLevelObject.java:54) org.eclipse.birt.data.engine.olap.script.JSLevelObject.getDefaultValue(JSLevelObject.java:47) org.eclipse.birt.data.engine.olap.api.query.impl.CubeCursorImpl.getObject(CubeCursorImpl.java:285) org.eclipse.birt.report.engine.executor.DataItemExecutor.execute(DataItemExecutor.java:123) org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:36) org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutChildren(HTMLBlockStackingLM.java:63) org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:171) org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.resumeLayout(HTMLInlineStackingLM.java:94) org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.layoutChildren(HTMLInlineStackingLM.java:138) org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:171) org.eclipse.birt.report.engine.layout.html.HTMLRowLM.layout(HTMLRowLM.java:33) org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutChildren(HTMLBlockStackingLM.java:68) org.eclipse.birt.report.engine.layout.html.HTMLTableBandLM.layoutChildren(HTMLTableBandLM.java:66) org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:171) org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutChildren(HTMLBlockStackingLM.java:68) org.eclipse.birt.report.engine.layout.html.HTMLGroupLM.layoutChildren(HTMLGroupLM.java:65) org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:171) org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutChildren(HTMLBlockStackingLM.java:68) org.eclipse.birt.report.engine.layout.html.HTMLGroupLM.layoutChildren(HTMLGroupLM.java:65) org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:171) org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutChildren(HTMLBlockStackingLM.java:68) org.eclipse.birt.report.engine.layout.html.HTMLTableLM.layoutChildren(HTMLTableLM.java:74) org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:171) org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layoutChildren(HTMLPageLM.java:140) org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:82) org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:88) org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:205) org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:125) org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(Unknown Source) org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(Unknown Source) org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(Unknown Source) org.eclipse.birt.report.service.actionhandler.BirtGetPageAllActionHandler.__execute(Unknown Source) org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(Unknown Source) org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(Unknown Source) org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(Unknown Source) org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPageAll(Unknown Source) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:585) org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(Unknown Source) org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(Unknown Source) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:585) org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453) org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(Unknown Source) javax.servlet.http.HttpServlet.service(HttpServlet.java:760) org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) javax.servlet.http.HttpServlet.service(HttpServlet.java:853) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) org.eclipse.tomcat.internal.EclipseErrorReportValve.invoke(EclipseErrorReportValve.java:153) org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700) org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) java.lang.Thread.run(Thread.java:595)

Files changed in fix:
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/i18n/ResourceConstants.java data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/script/JSDimensionObject.java data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/script/JSLevelAccessor.java