Bug 201360 The error message should list the missing parameters by name and show the expected type if the type is wrong [0705]
Description: The error message should list the missing parameters by name and show the expected type if the type is wrong. Build number: 2.2.1.v200708027-0630 Steps to reproduce: 1. New a report with two parameters a and b, set both type to integer. 2. Preview and input "abc" for both a and b, click OK. Expected result: The error message should list the missing parameters by name and show the expected type. Actual result: See the following error log. Error log: org.eclipse.birt.report.model.api.metadata.ValidationValueException: The value "abc" is invalid with the type "integer". Show Exception Stack Trace Hide Exception Stack Trace Stack Trace: org.eclipse.birt.report.model.api.util.ParameterValidationUtil.doValidateNumber(ParameterValidationUtil.java:319) org.eclipse.birt.report.model.api.util.ParameterValidationUtil.validate(ParameterValidationUtil.java:176) org.eclipse.birt.report.model.api.util.ParameterValidationUtil.validate(ParameterValidationUtil.java:477) org.eclipse.birt.report.model.api.util.ParameterValidationUtil.validate(ParameterValidationUtil.java:737) org.eclipse.birt.report.utility.DataUtil.validateWithLocale(Unknown Source) org.eclipse.birt.report.utility.DataUtil.validate(Unknown Source) org.eclipse.birt.report.utility.BirtUtility.handleOperation(Unknown Source) org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(Unknown Source) org.eclipse.birt.report.service.actionhandler.BirtChangeParameterActionHandler.runReport(Unknown Source) org.eclipse.birt.report.service.actionhandler.AbstractChangeParameterActionHandler.__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.handleChangeParameter(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)
viewer/org.eclipse.birt.report.viewer/birt/WEB-INF/classes/org/eclipse/birt/report/taglib/ParamDefTag.java
String label = selectionItem.getLabel( );
			if ( label == null || label.length( ) <= 0 )
				label = ParameterValidationUtil.getDisplayValue( null,
						this.pattern, value, this.locale );
			label = label != null ? ParameterAccessor.htmlEncode( label ) : ""; 
			String ctlId = encParamId + "_" 
					+ index;
			writer.write( "<input type=\"radio\" " ); 
			writer.write( " name=\"" + radioName + "\"" ); 
			writer.write( " id=\"" + ctlId + "\"" ); 
			__handleGeneralDefinition( );
			writer
					.write( " value=\"" + ParameterAccessor.htmlEncode( displayValue ) + "\"" ); 
			writer.write( " onclick=\"" + onClick + "\"" ); 
			if ( displayValue.equalsIgnoreCase( DataUtil.getDisplayValue( param
					.getValue( ) ) ) )
			{
				isChecked = true;
				writer.write( " checked" ); 
				if ( param.getDisplayText( ) == null )
				{
					this.displayTextString = label;
				}
				else
				{
					label = param.getDisplayText( );
				}
			}
			writer.write( " >" ); 
			writer.write( "<label id=\"" + ( ctlId + "_label" ) + "\"" );