tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lar...@locus.apache.org
Subject cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/core ContextManager.java Handler.java Response.java ResponseImpl.java
Date Sat, 11 Nov 2000 02:56:59 GMT
larryi      00/11/10 18:56:58

  Modified:    src/share/org/apache/tomcat/context Tag: tomcat_32
                        DefaultCMSetter.java
               src/share/org/apache/tomcat/core Tag: tomcat_32
                        ContextManager.java Handler.java Response.java
                        ResponseImpl.java
  Log:
  Restored display of the actual error location for included servlets in the
  default output.
  
  Note: These internal locations are only displayed if setDebugInfo="true" for
  the ContextManager in server.xml
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.45.2.8  +10 -9     jakarta-tomcat/src/share/org/apache/tomcat/context/DefaultCMSetter.java
  
  Index: DefaultCMSetter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/context/DefaultCMSetter.java,v
  retrieving revision 1.45.2.7
  retrieving revision 1.45.2.8
  diff -u -r1.45.2.7 -r1.45.2.8
  --- DefaultCMSetter.java	2000/11/09 21:42:46	1.45.2.7
  +++ DefaultCMSetter.java	2000/11/11 02:56:57	1.45.2.8
  @@ -216,6 +216,7 @@
   	throws Exception
       {
   	String msg=(String)req.getAttribute("javax.servlet.error.message");
  +	String errorURI = res.getErrorURI();
   	
   	Throwable e= (Throwable)req.
   	    getAttribute("tomcat.servlet.error.throwable");
  @@ -230,7 +231,7 @@
   	
   	StringBuffer buf = new StringBuffer();
   	buf.append("<h1>");
  -	if( res.isIncluded() ) {
  +	if( errorURI != null ) {
   	    buf.append(sm.getString("defaulterrorpage.includedservlet") ).
   		append(" ");
   	}  else {
  @@ -247,12 +248,11 @@
   	    .append(req.getRequestURI())
   	    .append("</h2>");
   
  -	if ( res.isIncluded() && contextM.getShowDebugInfo()) {
  +	if ( errorURI != null && contextM.getShowDebugInfo()) {
   	    buf.append("\r\n<h2>")
   		.append(sm.getString("defaulterrorpage.errorlocation"))
   		.append(" ")
  -		.append((String)req.
  -			getAttribute("javax.servlet.include.request_uri"))
  +		.append(errorURI)
   		.append("</h2>");
   	}
   
  @@ -329,6 +329,7 @@
   	throws Exception
       {
   	String msg=(String)req.getAttribute("javax.servlet.error.message");
  +	String errorURI = res.getErrorURI();
   	
   	res.setContentType("text/html");
   	// res is reset !!!
  @@ -337,7 +338,8 @@
   	
   	StringBuffer buf = new StringBuffer();
   	buf.append("<head><title>");
  -	if( res.isIncluded() ) {
  +	// if an included request originated
  +	if( errorURI != null ) {
   	    // use error code from include
   	    sc = ((Integer)req.getAttribute("javax.servlet.error.status_code")).intValue();
   	    buf.append(sm.getString("defaulterrorpage.includedservlet") );
  @@ -349,7 +351,7 @@
   	buf.append("</title></head>\r\n");
   
   	buf.append("<h1>");
  -	if( res.isIncluded() ) {
  +	if( errorURI != null ) {
   	    buf.append(sm.getString("defaulterrorpage.includedservlet") )
   		.append(" ");
   	}  else {
  @@ -366,12 +368,11 @@
   	    .append(req.getRequestURI())
   	    .append("</h2>");
   
  -	if ( sc >= 400 && res.isIncluded() && contextM.getShowDebugInfo())
{
  +	if ( sc >= 400 && errorURI != null && contextM.getShowDebugInfo())
{
   	    buf.append("\r\n<h2>")
   		.append(sm.getString("defaulterrorpage.errorlocation"))
   		.append(" ")
  -		.append((String)req.
  -			getAttribute("javax.servlet.include.request_uri"))
  +		.append(errorURI)
   		.append("</h2>");
   	}
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.100.2.18 +5 -8      jakarta-tomcat/src/share/org/apache/tomcat/core/ContextManager.java
  
  Index: ContextManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/ContextManager.java,v
  retrieving revision 1.100.2.17
  retrieving revision 1.100.2.18
  diff -u -r1.100.2.17 -r1.100.2.18
  --- ContextManager.java	2000/11/10 06:42:48	1.100.2.17
  +++ ContextManager.java	2000/11/11 02:56:58	1.100.2.18
  @@ -994,6 +994,11 @@
   
       // -------------------- Error handling --------------------
   
  +    public void saveErrorURI( Request req, Response res ) {
  +	if (res.getErrorURI() == null)
  +	    res.setErrorURI( (String)req.getAttribute("javax.servlet.include.request_uri"));
  +    }
  +
       /** Called for error-codes
        */
       public void handleStatus( Request req, Response res, int code ) {
  @@ -1060,9 +1065,6 @@
        * or use the default handler.
        */
       void handleError( Request req, Response res , Throwable t  ) {
  -	// if error already handled
  -	if (res.isErrorHandled())
  -	    return;
   	Context ctx = req.getContext();
   	if(ctx==null) {
   	    ctx=getContext("");
  @@ -1084,8 +1086,6 @@
               req.setAttribute("tomcat.servlet.error.unavailableTime", new Integer(unavailableTime));
   	    res.setStatus(HttpServletResponse.SC_SERVICE_UNAVAILABLE); // 503
   	    handleStatus( req, res, HttpServletResponse.SC_SERVICE_UNAVAILABLE );
  -	    // indicate error handling has been called
  -	    res.setErrorHandled(true);
   	    return;
   	}
   	else if( t instanceof IllegalStateException ) {
  @@ -1152,9 +1152,6 @@
           } catch( ServletException e) {
               ;   // ASSERT: Only thrown by included servlets
           }
  -
  -	// indicate error handling has been called
  -	res.setErrorHandled(true);
       }
   
       public ServletWrapper getHandlerForPath( Context ctx, String path ) {
  
  
  
  1.7.2.7   +7 -3      jakarta-tomcat/src/share/org/apache/tomcat/core/Handler.java
  
  Index: Handler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/Handler.java,v
  retrieving revision 1.7.2.6
  retrieving revision 1.7.2.7
  diff -u -r1.7.2.6 -r1.7.2.7
  --- Handler.java	2000/11/10 02:06:32	1.7.2.6
  +++ Handler.java	2000/11/11 02:56:58	1.7.2.7
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/Handler.java,v 1.7.2.6
2000/11/10 02:06:32 craigmcc Exp $
  - * $Revision: 1.7.2.6 $
  - * $Date: 2000/11/10 02:06:32 $
  + * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/Handler.java,v 1.7.2.7
2000/11/11 02:56:58 larryi Exp $
  + * $Revision: 1.7.2.7 $
  + * $Date: 2000/11/11 02:56:58 $
    *
    * ====================================================================
    *
  @@ -260,6 +260,8 @@
   		}
   		context.log("Exception in init  " + ex.getMessage(), ex );
                   if (res.isIncluded()) { // Only propogate on includes
  +		    // save error URI if necessary
  +		    contextM.saveErrorURI( req, res );
                       if (ex instanceof IOException)
                           throw (IOException) ex;
                       else if (ex instanceof ServletException)
  @@ -294,6 +296,8 @@
   
           // Rethrow the exception if we are inside an include
           if (res.isIncluded()) {
  +	    // save error URI if necessary
  +	    contextM.saveErrorURI( req, res );
               //            context.log("Rethrowing doService exception: " + t);
               if (t instanceof IOException)
                   throw (IOException) t;
  
  
  
  1.22.2.2  +7 -7      jakarta-tomcat/src/share/org/apache/tomcat/core/Response.java
  
  Index: Response.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/Response.java,v
  retrieving revision 1.22.2.1
  retrieving revision 1.22.2.2
  diff -u -r1.22.2.1 -r1.22.2.2
  --- Response.java	2000/11/09 13:31:35	1.22.2.1
  +++ Response.java	2000/11/11 02:56:58	1.22.2.2
  @@ -143,15 +143,15 @@
        */
       public void setIncluded(boolean b);
   
  -    /** True if error has been handled
  +    /** Saves the request that originates an error.
        */
  -    public boolean isErrorHandled();
  -
  -    /** This is used to indicate that error handling has been performed.
  -     *  It is used to avoid invoking the error handling more than once
  -     *  as exceptions are passed up the call stack.
  +    public void setErrorURI(String uri) ;
  +    
  +    /** This is used to retrieve the included request that
  +     *  originated an error when the error is handled at the
  +     *  top level request.
        */
  -    public void setErrorHandled(boolean b);
  +    public String getErrorURI() ;
       
       // -------------------- Buffering --------------------
       
  
  
  
  1.33.2.4  +9 -9      jakarta-tomcat/src/share/org/apache/tomcat/core/Attic/ResponseImpl.java
  
  Index: ResponseImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/Attic/ResponseImpl.java,v
  retrieving revision 1.33.2.3
  retrieving revision 1.33.2.4
  diff -u -r1.33.2.3 -r1.33.2.4
  --- ResponseImpl.java	2000/11/09 13:31:35	1.33.2.3
  +++ ResponseImpl.java	2000/11/11 02:56:58	1.33.2.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/Attic/ResponseImpl.java,v
1.33.2.3 2000/11/09 13:31:35 larryi Exp $
  - * $Revision: 1.33.2.3 $
  - * $Date: 2000/11/09 13:31:35 $
  + * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/Attic/ResponseImpl.java,v
1.33.2.4 2000/11/11 02:56:58 larryi Exp $
  + * $Revision: 1.33.2.4 $
  + * $Date: 2000/11/11 02:56:58 $
    *
    * ====================================================================
    *
  @@ -108,7 +108,7 @@
       protected boolean commited = false;
       
       boolean notIncluded=true;
  -    boolean errorHandled=false;
  +    String errorURI=null;
   
       // default implementation will just append everything here
       StringBuffer body=null;
  @@ -157,12 +157,12 @@
   	}
       }
   
  -    public boolean isErrorHandled() {
  -	return errorHandled;
  +    public void setErrorURI(String uri) {
  +	errorURI = uri;
       }
   
  -    public void setErrorHandled( boolean handled ) {
  -	errorHandled = handled;
  +    public String getErrorURI() {
  +	return errorURI;
       }
       
       public boolean isStarted() {
  @@ -184,7 +184,7 @@
   	started = false;
   	commited = false;
   	notIncluded=true;
  -	errorHandled=false;
  +	errorURI=null;
   	// adapter
   	body=null;
   	if( out != null ) out.recycle();
  
  
  

Mime
View raw message