You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@apache.org on 2001/02/06 07:46:30 UTC

cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/generators ErrorHandler.java

costin      01/02/05 22:46:29

  Modified:    src/share/org/apache/tomcat/modules/generators
                        ErrorHandler.java
  Log:
  Fixes for the error handling. More debugging ( maybe we'll need it again )
  
  Revision  Changes    Path
  1.6       +24 -13    jakarta-tomcat/src/share/org/apache/tomcat/modules/generators/ErrorHandler.java
  
  Index: ErrorHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/generators/ErrorHandler.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ErrorHandler.java	2001/01/31 01:56:46	1.5
  +++ ErrorHandler.java	2001/02/06 06:46:29	1.6
  @@ -86,16 +86,9 @@
   	showDebugInfo=b;
       }
   
  -    public void engineInit( ContextManager cm )
  -    	throws TomcatException
  -    {
  +    public void engineInit(ContextManager cm ) {
       }
       
  -    public void addContext( ContextManager cm, Context ctx)
  -	throws TomcatException
  -    {
  -    }
  -
       /** Add default error handlers
        */
       public void contextInit( Context ctx)
  @@ -131,6 +124,8 @@
   	ctx.addErrorPage( "301", "tomcat.redirectHandler");
   	ctx.addServlet( new NotFoundHandler(this, showDebugInfo));
   	ctx.addErrorPage( "404", "tomcat.notFoundHandler");
  +
  +	if( debug > 0 ) log( "Init " + ctx + " " + showDebugInfo);
       }
   
       public int handleError( Request req, Response res, Throwable t ) {
  @@ -143,6 +138,7 @@
   	    ctx=rootContext;
   	}
   
  +	if( debug > 0 ) log( "In error handler "  +t );
   	if( t==null ) {
   	    handleStatusImpl( cm, ctx, req, res, res.getStatus() );
   	} else {
  @@ -207,8 +203,13 @@
   
   	// reset error exception
   	res.setErrorException( null );
  -	errorServlet.service( req, res );
  -	Exception ex=res.getErrorException();
  +	Exception ex=null;
  +	try {
  +	    errorServlet.service( req, res );
  +	    ex=res.getErrorException();
  +	} catch (Exception ex1 ) {
  +	    ex=ex1;
  +	}
   	if( ex!=null && ! (ex instanceof IOException) ) {
   	    // we can ignore IOException - probably the user
   	    // has clicked "STOP"
  @@ -229,6 +230,9 @@
       void handleErrorImpl( ContextManager cm, Context ctx,
   			  Request req, Response res , Throwable t  )
       {
  +	if( debug>0 )
  +	    log( "Handle error in " + req + " " + t.getMessage() );
  +	
   	/** The exception must be available to the user.
   	    Note that it is _WRONG_ to send the trace back to
   	    the client. AFAIK the trace is the _best_ debugger.
  @@ -283,11 +287,13 @@
   
   	boolean isDefaultHandler = false;
   	if ( errorLoop( ctx, req ) ){
  -                return;
  +	    log( "Error loop for " + req + " error " + t);
  +	    return;
           }
           if ( errorServlet==null) {
   	    errorServlet = ctx.getServletByName("tomcat.exceptionHandler");
   	    isDefaultHandler = true;
  +	    if( debug>0 ) ctx.log( "Using default handler " + errorServlet );
   	}
   
   	if (errorServlet == null) {
  @@ -315,8 +321,13 @@
   
   	// reset error exception
   	res.setErrorException( null );
  -	errorServlet.service( req, res );
  -	Exception ex=res.getErrorException();
  +	Exception ex=null;
  +	try {
  +	    errorServlet.service( req, res );
  +	    ex=res.getErrorException();
  +	} catch(Exception ex1 ) {
  +	    ex=ex1;
  +	}
   	if( ex!=null && ! (ex instanceof IOException) ) {
   	    // we can ignore IOException - probably the user
   	    // has clicked "STOP"