Boolean isDesigner = Boolean.valueOf( ParameterAccessor .isDesigner( request ) );
	public void runReport( HttpServletRequest request,			IReportRunnable runnable, String documentName, Locale locale,			HashMap parameters ) throws RemoteException	{		assert runnable != null;		// Preapre the run report task.		IRunTask runTask = null;		synchronized ( this.getClass( ) )		{			runTask = engine.createRunTask( runnable );		}		runTask.setLocale( locale );		runTask.setParameterValues( parameters );		HashMap context = new HashMap( );		// context.put( DataEngine.DATASET_CACHE_OPTION, Boolean.TRUE );		context				.put(						"org.eclipse.birt.data.engine.dataset.cache.option", Boolean.TRUE ); //$NON-NLS-1$		context.put( EngineConstants.APPCONTEXT_BIRT_VIEWER_HTTPSERVET_REQUEST,				request );		context.put( EngineConstants.APPCONTEXT_CLASSLOADER_KEY,				ReportEngineService.class.getClassLoader( ) );		runTask.setAppContext( context );		// Run report.		try		{			runTask.run( documentName );		}		catch ( BirtException e )		{			// Any Birt exception.			AxisFault fault = new AxisFault( e.getLocalizedMessage( ) );			fault					.setFaultCode( new QName(							"ReportEngineService.runReport( )" ) ); //$NON-NLS-1$			fault.setFaultString( e.getLocalizedMessage( ) );			throw fault;		}		finally		{			runTask.close( );		}	}