Bug 191153 [Regression] NPE throws out when preview a crosstab with filter[1102]
Description: Preview a crosstab with filter, NPE throws out. Build Version:2.2.0.v20070606-0630 Steps to reproduce: 1. Get the attached report design file, preview in layout. Error log: Exception Close org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report; nested exception is: java.lang.NullPointerException Show Exception Stack Trace Hide Exception Stack Trace Stack Trace: org.eclipse.birt.data.engine.olap.util.filter.BaseDimensionFilterEvalHelper.getTargetDimension(BaseDimensionFilterEvalHelper.java:307) org.eclipse.birt.data.engine.olap.util.filter.BaseDimensionFilterEvalHelper.getTargetDimensionLevelNames(BaseDimensionFilterEvalHelper.java:241) org.eclipse.birt.data.engine.olap.util.filter.BaseDimensionFilterEvalHelper.initialize(BaseDimensionFilterEvalHelper.java:133) org.eclipse.birt.data.engine.olap.util.filter.DimensionFilterEvalHelper.(DimensionFilterEvalHelper.java:44) org.eclipse.birt.data.engine.olap.util.filter.BaseDimensionFilterEvalHelper.createFilterHelper(BaseDimensionFilterEvalHelper.java:75) org.eclipse.birt.data.engine.olap.impl.query.CubeQueryExecutor.getDimensionFilterEvalHelpers(CubeQueryExecutor.java:58) org.eclipse.birt.data.engine.olap.query.view.QueryExecutor.execute(QueryExecutor.java:78) org.eclipse.birt.data.engine.olap.query.view.BirtCubeView.getCubeCursor(BirtCubeView.java:90) org.eclipse.birt.data.engine.olap.impl.query.CubeQueryResults.getCubeCursor(CubeQueryResults.java:65) org.eclipse.birt.report.engine.data.dte.CubeResultSet.(CubeResultSet.java:78) org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteCube(DteDataEngine.java:234) org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:120) org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:178) org.eclipse.birt.report.engine.executor.ExecutorManager$ExecutorContext.executeQuery(ExecutorManager.java:403) org.eclipse.birt.report.item.crosstab.core.re.executor.BaseCrosstabExecutor.executeQuery(BaseCrosstabExecutor.java:95) org.eclipse.birt.report.item.crosstab.core.re.executor.CrosstabReportItemExecutor.execute(CrosstabReportItemExecutor.java:102) org.eclipse.birt.report.engine.executor.ExtendedItemExecutor.execute(ExtendedItemExecutor.java:57) org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:45) org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:42) org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:45) org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:33) org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layoutChildren(HTMLPageLM.java:126) org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:84) org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:90) org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:148) org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:71) 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)
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/olap/util/filter/BaseDimensionFilterEvalHelper.java
}
	/* (non-Javadoc)
	 * @see org.eclipse.birt.data.engine.olap.util.filter.IJSFilterHelper#getAggrLevels()
	 */
	public DimLevel[] getAggrLevels( )
	{
		return this.aggrLevels;
	}
	/***
	 * 
	 * @return
	 * @throws DataException
	 */
	protected List getTargetDimensionLevelNames( ) throws DataException
	{
		IDimensionDefinition dimDefn = getTargetDimension( );
		if ( dimDefn == null )
			throw new DataException( "Referenced dimension definition:"+this.dimName+" does not exist.");
		List result = new ArrayList();
		List levels = ((IHierarchyDefinition)dimDefn.getHierarchy( ).get( 0 )).getLevels( );
		for( int j = 0; j < levels.size(); j++ )
		{
			ILevelDefinition level = (ILevelDefinition)levels.get( j );
			result.add( level.getName( ) );
		}
		return result;
	}
	/* (non-Javadoc)
	 * @see org.eclipse.birt.data.engine.olap.util.filter.IJSFilterHelper#getDimensionName()
	 */