IReportRunnable runnable = (IReportRunnable) attrBean .getReportDesignHandle( context.getRequest( ) ) .getDesignObject( );  ModuleHandle model = runnable.getDesignHandle( ).getModuleHandle( );
	protected void __execute( ) throws RemoteException	{		ViewerAttributeBean attrBean = (ViewerAttributeBean) context.getBean( );		try		{			// get design file name			String reportDesignName = attrBean.getReportDesignName( );			// get design config file name			String configFileName = reportDesignName.replaceFirst(					IBirtConstants.SUFFIX_DESIGN_FILE,					IBirtConstants.SUFFIX_DESIGN_CONFIG );			// Generate the session handle			SessionHandle sessionHandle = DesignEngine.newSession( ULocale					.getDefault( ) );			File configFile = new File( configFileName );			// if config file existed, then delete it			if ( configFile != null && configFile.exists( )					&& configFile.isFile( ) )			{				configFile.delete( );			}			// create a new config file			ReportDesignHandle handle = sessionHandle.createDesign( );			// get report runnable			IReportRunnable runnable = (IReportRunnable) attrBean					.getReportDesignHandle( context.getRequest( ) )					.getDesignObject( );			ModuleHandle model = runnable.getDesignHandle( ).getModuleHandle( );			// get parameters from operation			Oprand[] op = this.operation.getOprand( );			if ( op != null )			{				Iterator paramIr = null;				if ( attrBean.getParameterList( ) != null )					paramIr = attrBean.getParameterList( ).iterator( );				for ( int i = 0; i < op.length; i++ )				{					ConfigVariable configVar = new ConfigVariable( );					String paramName = op[i].getName( );					String paramValue = op[i].getValue( );					// find the parameter					ParameterHandle parameterHandle = model							.findParameter( paramName );					if ( parameterHandle != null && paramValue != null							&& paramIr != null )					{						while ( paramIr.hasNext( ) )						{							ParameterDefinition parameterObj = (ParameterDefinition) paramIr									.next( );							if ( paramName.equals( parameterObj.getName( ) ) )							{								// convert current parameter to object with								// current locale								ReportParameterConverter converter = new ReportParameterConverter(										parameterObj.getPattern( ), attrBean												.getLocale( ) );								Object paramValueObj = converter										.parse( paramValue, parameterObj												.getDataType( ) );								// save parameter with fixed locale								converter = new ReportParameterConverter(										parameterObj.getPattern( ), ULocale.US );								paramValue = converter.format( paramValueObj );								break;							}						}						// if parameter value is not null, then save it to						// config file						if ( paramValue != null )						{							configVar.setName( paramName									+ parameterHandle.getID( ) );							configVar.setValue( paramValue );							handle.addConfigVariable( configVar );						}					}				}			}			// save config file			handle.saveAs( configFileName );			handle.close( );			handleUpdate( );		}		catch ( Exception e )		{			AxisFault fault = new AxisFault( );			fault.setFaultCode( new QName(					"BirtCacheParameterActionHandler.__execute( )" ) ); //$NON-NLS-1$			fault.setFaultReason( e.getLocalizedMessage( ) );			throw fault;		}	}