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...@locus.apache.org on 2000/11/02 22:17:43 UTC

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

costin      00/11/02 13:17:41

  Modified:    src/share/org/apache/tomcat/context ErrorHandler.java
  Log:
  Removed ContextManger.getDefaultContext().
  
  The method doesn't work with virtual hosts, and it wasn't used in any
  other place then ErrorHandler.
  
  Any Context that needs the "/" webapps of the "default" host can
  get it in the addContext() hook, no need to keep it explicitely in core.
  
  Revision  Changes    Path
  1.2       +17 -10    jakarta-tomcat/src/share/org/apache/tomcat/context/ErrorHandler.java
  
  Index: ErrorHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/context/ErrorHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ErrorHandler.java	2000/10/08 01:02:25	1.1
  +++ ErrorHandler.java	2000/11/02 21:17:38	1.2
  @@ -79,7 +79,8 @@
    * @author Costin Manolache
    */
   public final class ErrorHandler extends BaseInterceptor {
  -
  +    private Context rootContext=null;
  +    
       public ErrorHandler() {
       }
   
  @@ -91,6 +92,8 @@
       public void addContext( ContextManager cm, Context ctx)
   	throws TomcatException
       {
  +	if( ctx.getHost() == null && ctx.getPath().equals(""))
  +	    rootContext = ctx;
       }
   
       /** Add default error handlers
  @@ -108,11 +111,15 @@
   	ctx.addErrorPage( "404", "tomcat.notFoundHandler");
       }
   
  -
       public int handleError( Request req, Response res, Throwable t ) {
   	ContextManager cm=req.getContextManager();
   	Context ctx = req.getContext();
  -	if(ctx==null) ctx=cm.getDefaultContext();
  +	if(ctx==null) {
  +	    // that happens only if the request can't pass contextMap
  +	    // hook. The reason for that is a malformed request, or any
  +	    // other error.
  +	    ctx=rootContext;
  +	}
   
   	if( t==null ) {
   	    handleStatusImpl( cm, ctx, req, res, res.getStatus() );
  @@ -264,9 +271,9 @@
   	Response res1=new Response();
   	cm.initRequest( req1, res1 );
   
  -	req1.setRequestURI( ctx.getPath() + path );
  +	req1.requestURI().setString( ctx.getPath() + path );
   	cm.processRequest( req1 );
  -	return req1.getWrapper();
  +	return req1.getHandler();
       }
   
       /** Handle the case of error handler generating an error or special status
  @@ -311,7 +318,7 @@
   	    getAttribute("javax.servlet.include.request_uri");
   
   	if (requestURI == null) {
  -	    requestURI = req.getRequestURI();
  +	    requestURI = req.requestURI().toString();
   	}
   
   	if( sbNote==0 ) {
  @@ -396,7 +403,7 @@
   	// More info - where it happended"
   	buf.append("<h2>")
   	    .append(sm.getString("defaulterrorpage.location"))
  -	    .append(req.getRequestURI())
  +	    .append(req.requestURI().toString())
   	    .append("</h2>");
   
   	buf.append("<b>")
  @@ -466,7 +473,7 @@
   	// More info - where it happended"
   	buf.append("<h2>")
   	    .append(sm.getString("defaulterrorpage.location"))
  -	    .append(req.getRequestURI())
  +	    .append(req.requestURI().toString())
   	    .append("</h2>");
   
   	buf.append("<b>")
  @@ -556,9 +563,9 @@
   
       static String getRequestURL( Request req )  {
    	StringBuffer url = new StringBuffer ();
  -	String scheme = req.getScheme ();
  +	String scheme = req.scheme().toString();
   	int port = req.getServerPort ();
  -	String urlPath = req.getRequestURI();
  +	String urlPath = req.requestURI().toString();
   	
   	url.append (scheme);		// http, https
   	url.append ("://");