if ( "/download".equalsIgnoreCase( request.getServletPath( ) ) )
if ( IBirtConstants.SERVLET_PATH_DOWNLOAD.equalsIgnoreCase( request.getServletPath( ) ) )
	protected void doService( HttpServletRequest request,			HttpServletResponse response ) throws ServletException, IOException	{		ViewerAttributeBean attrBean = ( ViewerAttributeBean ) request				.getAttribute( "attributeBean" ); //$NON-NLS-1$		assert attrBean != null;		ServletOutputStream out = response.getOutputStream( );		GetUpdatedObjectsResponse upResponse = new GetUpdatedObjectsResponse( );		IContext context = new BirtContext( request, response );		Operation op = null;		try		{			if ( "/download".equalsIgnoreCase( request.getServletPath( ) ) ) //$NON-NLS-1$			{				BirtExtractDataActionHandler extractDataHandler = new BirtExtractDataActionHandler(						context, op, upResponse );				extractDataHandler.execute( );			} else if ( ParameterAccessor.isGetImageOperator( request ) )			{				BirtRenderImageActionHandler renderImageHandler = new BirtRenderImageActionHandler(						context, op, upResponse );				renderImageHandler.execute( );			} else			{				BirtRunAndRenderActionHandler runAndRenderHandler = new BirtRunAndRenderActionHandler(						context, op, upResponse );				runAndRenderHandler.execute( );			}		}		catch ( RemoteException e )		{			AxisFault fault = ( AxisFault ) e;			// Special handle since servlet output stream has been			// retrieved.			// Any include and forward throws exception.			// Better to move this error handle into engine.			String message = "<html><body><font color=\"red\">" //$NON-NLS-1$ 					+ ParameterAccessor.htmlEncode( fault.getFaultString( ) )					+ "</font></body></html>"; //$NON-NLS-1$			out.write( message.getBytes( ) );		}	}