You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bi...@apache.org on 2001/12/13 05:20:07 UTC

cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade LoadOnStartupInterceptor.java

billbarker    01/12/12 20:20:06

  Modified:    src/facade22/org/apache/tomcat/facade
                        LoadOnStartupInterceptor.java
  Log:
  Fix behavior when servlet is a JspFile.
  
  Fix for bug #5390.
  Reported by: Mike mike@ds808.net
  
  Revision  Changes    Path
  1.4       +19 -22    jakarta-tomcat/src/facade22/org/apache/tomcat/facade/LoadOnStartupInterceptor.java
  
  Index: LoadOnStartupInterceptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/LoadOnStartupInterceptor.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- LoadOnStartupInterceptor.java	2001/06/28 07:10:01	1.3
  +++ LoadOnStartupInterceptor.java	2001/12/13 04:20:06	1.4
  @@ -132,9 +132,8 @@
   			    ((ServletHandler)result).getServletInfo().
   			    getJspFile() != null ) {
   			    loadJsp( ctx, result );
  -			} else {
  -			    ((ServletHandler)result).init();
   			}
  +			((ServletHandler)result).init();
   		    } catch (Throwable ee) {
   			// it can be ClassNotFound or other - servlet errors
   			// shouldn't stop initialization
  @@ -155,29 +154,27 @@
   	log("Initializing JSP with JspWrapper");
   	
   	// Ugly code to trick JSPServlet into loading this.
  +        BaseInterceptor ri[];
   	ContextManager cm=context.getContextManager();
   	String path=((ServletHandler)result).getServletInfo().getJspFile();
  -	Request request = new Request();
  -	Response response = new Response();
  -	request.recycle();
  -	response.recycle();
  -	cm.initRequest(request,response);
  -	
   	String requestURI = path + "?jsp_precompile=true";
  -
  -	if( !path.startsWith( "/" ) ) path="/" + path;
  -	request.requestURI().setString(context.getPath() + path);
  -
  -	// this is not used with JspInterceptor, but maybe a jsp servlet is
  -	// used
  -	request.queryString().setString( "jsp_precompile=true" );
  -	
  -	request.setContext(context);
  -
  -	//cm.service( request, response );
  -	// If we switch to JspInterceptor, it's enough to process the
  -	// request, it'll detect the page and precompile
  -	cm.processRequest( request );
  +	Request request = cm.createRequest(context, requestURI);
  +	Response response = request.getResponse();
  +	request.setHandler(result);
  +	/* If we switch to JspInterceptor, it's enough to process the
  +	   request, it'll detect the page and precompile.
  +	   Note, we can call ContextManager.processRequest since the one
  +	   thing we do know at this point is that the context isn't started.
  +	   However, we should be able go jump straight to requestMap.
  +	*/
  +	ri=context.getContainer().
  +	    getInterceptors(Container.H_requestMap);
  +	for( int i=0; i< ri.length; i++ ) {
  +	    if( debug > 1 )
  +		log( "RequestMap " + ri[i] );
  +	    int status=ri[i].requestMap( request );
  +	    if( status!=0 ) return ;
  +	}
       }
       // -------------------- 
       // Old logic from Context - probably something cleaner can replace it.
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>