this.missingParameter = ReportEngineService.getInstance( ) .validateParameters( this.parameterTask, this.parameters );
	public void init( HttpServletRequest request ) 	{		String servletPath = request.getServletPath( );		if ( servletPath.indexOf( "/wr" ) != -1 ) //$NON-NLS-1$		{			this.category = "ERNI"; //$NON-NLS-1$		}		if ( ParameterAccessor.isGetImageOperator( request ) )		{			return;		}		this.masterPageContent = ParameterAccessor				.isMasterPageContent( request );		// Is in designer?		this.isDesigner = ParameterAccessor.isDesigner( request );		// Determine the report design and doc 's timestamp		this.reportDocumentName = ParameterAccessor.getReportDocument( request );		File reportDocFile = new File( reportDocumentName );		String reportDesignName = ParameterAccessor.getReport( request );		File reportDesignDocFile = new File( reportDesignName );		// If it is in designer and refresh the browser.		if ( reportDesignDocFile != null && reportDesignDocFile.exists( )				&& reportDesignDocFile.isFile( ) && reportDocFile != null				&& reportDocFile.exists( ) && reportDocFile.isFile( )				&& "get".equalsIgnoreCase( request.getMethod( ) ) ) //$NON-NLS-1$		{			if ( reportDesignDocFile.lastModified( ) > reportDocFile					.lastModified( )					|| ParameterAccessor.isOverwrite( request ) )			{				reportDocFile.delete( );			}		}		if ( reportDocFile.exists( )				&& ( reportDocFile.isFile( ) || reportDocFile.isDirectory( ) ) )		{			this.reportDocumentInstance = ReportEngineService.getInstance( )					.openReportDocument( this.reportDocumentName );			if ( this.reportDocumentInstance == null )			{				this.exception = new Exception( "Can not open report doc from " //$NON-NLS-1$						+ ParameterAccessor.getReportDocument( request ) );				return;			}			this.reportRunnable = this.reportDocumentInstance					.getReportRunnable( );		}		else		{			try			{				this.reportRunnable = ReportEngineService.getInstance( )						.openReportDesign(								ParameterAccessor.getReport( request ) );			}			catch ( EngineException e )			{				this.exception = e;				return;			}		}		// Double check the runnable.		if ( this.reportRunnable == null )		{			this.exception = new Exception( "Can not get report runnable" ); //$NON-NLS-1$			return;		}		// Report locale.		this.locale = ParameterAccessor.getLocale( request );		// Report page.		this.reportPage = String.valueOf( ParameterAccessor.getPage( request ) );		// Report title.		String title = null;		if ( this.reportRunnable != null )		{			title = (String) this.reportRunnable.getProperty( "title" ); //$NON-NLS-1$		}		if ( title == null || title.trim( ).length( ) <= 0 )		{			title = BirtResources.getString( "birt.viewer.title" ); //$NON-NLS-1$		}		this.reportTitle = ParameterAccessor.htmlEncode( title );		// Bookmark.		this.bookmark = ParameterAccessor.getBookmark( request );		// Prameter task.		this.parameterTask = ReportEngineService.getInstance( )				.createGetParameterDefinitionTask( this.reportRunnable );		if ( this.parameterTask != null )		{			this.parameterTask.setLocale( this.locale );		}		// Prepare the report parameters		this.parameters = ReportEngineService.getInstance( ).parseParameters(				request, this.parameterTask,				this.reportRunnable.getTestConfig( ), this.locale );		this.missingParameter = ReportEngineService.getInstance( )				.validateParameters( this.parameterTask, this.parameters );	}