Bug 143889 Preview failed after set a group on the table detail row
Dscription: Create a XML data source, then create data set based on it. Drag Dataset to layout. Set group for one column. Preview, action failed. Steps: 1. New a project, named"Birt" 2. New a report 3. Create a data source D using "Test.xml" 3. Choose new data source in context menu 4. Select "XML data source", name "D" and Click on Next 5 .Click on file button after URL edit box 6. Select an xml file "c:\Test.xml" as its data source file. Click on ok to close the browser window 7. new a data set "DS" based on the data souce "D" 8. In the 'Table Mapping' select "/Root/Data_ForAll/Row" and click ">" button. And In the poped up window "Define Row Mapping Xpath Expression "select the XPth "//Row", 9. In the 'row mapping', add the column with the correspond data type under "//Row" into the row mapping . 10. drag the dataset to the layout 11. Set a group on the table detail row 12. Preview Actual result: Preview in "edit daset" Failed, error message: Error happened while running the report Preview in web viewer: Java.lang.NullPointerException org.apache.axis.AxisFault.makeFault(AxisFault.java:101) 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(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) 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(Unknown Source) Additional exception: Any question, please feel free to let me know! Ju Zhu, ext:277
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/impl/QueryExecutor.java
evaluateResult = outerResults.getExecutorHelper( )
						.evaluate( iParamBind.getExpr( ) );
			}
			catch (BirtException e)
			{
				
				DataException dataEx= new DataException( ResourceConstants.UNEXPECTED_ERROR, e );
				logger.logp( Level.FINE,
						PreparedOdaDSQuery.class.getName( ),
						"getMergedParameters",
						"Error occurs in IQueryResults.getResultIterator()",
						e );
				throw dataEx;
			}
		}
		
		if (evaluateResult == null)
			evaluateResult = ScriptEvalUtil.evalExpr( iParamBind.getExpr( ),
					cx,
					evaluateScope,
					"ParamBinding(" + iParamBind.getName( ) + ")",
					0 );
					
		if ( evaluateResult == null)
		    throw new DataException(ResourceConstants.DEFAULT_INPUT_PARAMETER_VALUE_CANNOT_BE_NULL);
		return evaluateResult;
	}
	
	/**
	 * Converts a parameter value to a String expected by ParameterHint