Bug 177864 Error message is not helpful when a BIRT function call has incorrect params
The attached report design contains a single data iten with expression BirtComp.like("a"). This expression has syntax error because BirtComp.like() function expects two parameters. Run this report in BIRT viewer and the only error you will get is: org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report This error message is not helpful. It should have pointed to the source of the report design error, and has an exception call stack.
viewer/org.eclipse.birt.report.viewer/birt/WEB-INF/classes/org/eclipse/birt/report/service/BirtViewerReportService.java
private static ParameterDefinition convertScalarParameter(
			IScalarParameterDefn engineParam, ParameterGroupDefinition group )
	{
		Object handle = engineParam.getHandle( );
		ScalarParameterHandle scalarParamHandle = null;
		if ( handle instanceof ScalarParameterHandle )
			scalarParamHandle = (ScalarParameterHandle) handle;
		String name = engineParam.getName( );
		long id = scalarParamHandle != null ? scalarParamHandle.getID( ) : 0L;
		String pattern = scalarParamHandle == null ? "" : scalarParamHandle 
				.getPattern( );
		String displayFormat = engineParam.getDisplayFormat( );
		String displayName = engineParam.getDisplayName( );
		String helpText = engineParam.getHelpText( );
		String promptText = engineParam.getPromptText( );
		int dataType = engineParam.getDataType( );
		String valueExpr = scalarParamHandle == null ? null : scalarParamHandle
				.getValueExpr( );
		int controlType = engineParam.getControlType( );
		boolean hidden = engineParam.isHidden( );
		boolean allowNull = engineParam.allowNull( );
		boolean allowBlank = engineParam.allowBlank( );
		boolean mustMatch = scalarParamHandle == null
				? false
				: scalarParamHandle.isMustMatch( );
		boolean concealValue = engineParam.isValueConcealed( );
		ParameterDefinition param = new ParameterDefinition( id, name, pattern,
				displayFormat, displayName, helpText, promptText, dataType,
				valueExpr, controlType, hidden, allowNull, allowBlank,
				mustMatch, concealValue, group, null );