String nullParamName = getParameterName( paramValue );
String nullParamName = getParameterName( (String) paramValue );
	protected void parseConfigVars( HttpServletRequest request,			Collection parameterList )	{		this.configMap = new HashMap( );		// get report config filename		String reportConfigName = ParameterAccessor				.getConfigFileName( this.reportDesignName );		if ( reportConfigName == null )			return;		// Generate the session handle		SessionHandle sessionHandle = DesignEngine.newSession( ULocale.US );		ReportDesignHandle handle = null;		try		{			// Open report config file			handle = sessionHandle.openDesign( reportConfigName );			// initial config map			if ( handle != null )			{				String displayTextParam = null;				Iterator configVars = handle.configVariablesIterator( );				while ( configVars != null && configVars.hasNext( ) )				{					ConfigVariableHandle configVar = (ConfigVariableHandle) configVars							.next( );					if ( configVar != null && configVar.getName( ) != null )					{						String paramName = configVar.getName( );						String paramValue = configVar.getValue( );						// check if null parameter						if ( paramName.toLowerCase( ).startsWith(								ParameterAccessor.PARAM_ISNULL )								&& paramValue != null )						{							String nullParamName = getParameterName( paramValue );							if ( nullParamName != null )								this.configMap.put( nullParamName, null );							continue;						}						// check if display text of select parameter						else if ( ( displayTextParam = ParameterAccessor								.isDisplayText( paramName ) ) != null )						{							paramName = getParameterName( displayTextParam );							if ( paramName != null )							{								if ( this.displayTexts == null )									this.displayTexts = new HashMap( );								this.displayTexts.put( paramName, paramValue );							}							continue;						}						// check the parameter whether exist or not						paramName = getParameterName( paramName );						ScalarParameterHandle parameter = (ScalarParameterHandle) findParameter( paramName );						// convert parameter from default locale to current						// locale						if ( paramValue != null && parameter != null )						{							// find cached parameter type							String typeVarName = configVar.getName( )									+ "_" + IBirtConstants.PROP_TYPE; //$NON-NLS-1$							ConfigVariable typeVar = handle									.findConfigVariable( typeVarName );							// get cached parameter type							String dataType = parameter.getDataType( );							String cachedDateType = null;							if ( typeVar != null )								cachedDateType = typeVar.getValue( );							// if null or data type changed, skip it							if ( cachedDateType == null									|| !cachedDateType											.equalsIgnoreCase( dataType ) )							{								continue;							}							try							{								// if parameter type isn't String or DateTime,								// convert it								if ( !DesignChoiceConstants.PARAM_TYPE_STRING										.equalsIgnoreCase( dataType )										&& !DesignChoiceConstants.PARAM_TYPE_DATETIME												.equalsIgnoreCase( dataType ) )								{									String pattern = parameter.getPattern( );									Object paramValueObj = ParameterValidationUtil											.validate( dataType, pattern,													paramValue, ULocale.US );									paramValue = ParameterValidationUtil											.getDisplayValue( dataType,													pattern, paramValueObj,													locale );								}							}							catch ( Exception err )							{								paramValue = configVar.getValue( );							}							this.configMap.put( paramName, paramValue );						}					}				}				handle.close( );			}		}		catch ( Exception e )		{			// do nothing		}	}