Bug 314631 Cann't get correct default values for parameters that with non-constant default value expressions
Steps to reproduce: 1. create a report with a scalar parameter that has non-constant default value expression such as BirtDateTime.today() 2. setup a project to get the default values of the parameter in BIRT runtime Eg. IReportEngine engine = createReportEngine( ); IRunnable runnable = engine.openReportDesign( REPORT_DESIGN ); IGetParamaterDefinitionTask task = engine.createGetParameterDefinitionTask( runnable ); HashMap result = task.getDefaultValues(); Expect result: The result map contains a parameter name and default value pair in which the default value is a Date instance of today. Actural result: The default value is null.
engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/api/impl/GetParameterDefinitionTask.java
ChoiceListCache cache = new ChoiceListCache( parameterHelpers );
		int parameterCount = parameterHelpers.length;
		try
		{
			while ( iterator.next( ) )
			{
				Object[] values = new Object[parameterCount];
				for ( int i = 0; i < parameterCount; i++ )
				{
					ParameterHelper parameterHelper = parameterHelpers[i];
					CascadingParameterSelectionChoice choice = parameterHelper
							.createCascadingParameterSelectionChoice( iterator );
					values[i] = choice.getValue( );
					cache.getParent( values, i ).add( choice );
					choice.setChildren( cache.getChildren( values, i ) );
				}
			}
		}
		catch ( BirtException ex )
		{
			log.log( Level.WARNING, ex.getMessage( ), ex );
			executionContext.addException( parameterGroup, ex );
		}
		return cache.getRoot( );
	}
	private ParameterHelper[] getParameterHelpers(
			CascadingParameterGroupHandle parameterGroup )
	{
		SlotHandle parameters = parameterGroup.getParameters( );
		int parameterCount = parameters.getCount( );