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 2002/02/11 03:32:30 UTC
cvs commit: jakarta-tomcat/src/facade22/org/apache/tomcat/facade LoadOnStartupInterceptor.java ServletHandler.java
billbarker 02/02/10 18:32:30
Modified: src/facade22/org/apache/tomcat/facade
LoadOnStartupInterceptor.java ServletHandler.java
Log:
Moved loadJsp from LoadOnStartupInterceptor to ServletHandler.
There are too many ways to access a declared JSP, so centralize the hook to make certain that it gets compiled.
In 3.3.2 we should probably add a 'prePreServletInit' hook to the API so that JspInterceptor can take care of these cases on it's own.
Fix for bug #6348
Reported by: Vincent Massol vmassol@octo.com
Revision Changes Path
1.5 +1 -27 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.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- LoadOnStartupInterceptor.java 13 Dec 2001 04:20:06 -0000 1.4
+++ LoadOnStartupInterceptor.java 11 Feb 2002 02:32:29 -0000 1.5
@@ -148,33 +148,7 @@
void loadJsp( Context context, Handler result ) throws Exception {
// A Jsp initialized in web.xml -
-
- // Log ( since I never saw this code called, let me know if it does
- // for you )
- 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();
- String requestURI = path + "?jsp_precompile=true";
- 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 ;
- }
+ // Moved to ServletHandler.
}
// --------------------
// Old logic from Context - probably something cleaner can replace it.
1.19 +25 -1 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/ServletHandler.java
Index: ServletHandler.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/ServletHandler.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- ServletHandler.java 27 Oct 2001 02:55:20 -0000 1.18
+++ ServletHandler.java 11 Feb 2002 02:32:29 -0000 1.19
@@ -394,6 +394,28 @@
}
}
+ /** Handle the case of a JSP servlet that JspInterceptor hasn't seen.
+ * This shouldn't be any of our business, but for the moment we have
+ * to help JspInterceptor out.
+ */
+ void loadJsp( ) throws Exception{
+ BaseInterceptor ri[];
+ ContextManager cm=context.getContextManager();
+ String path=sw.getJspFile();
+ String requestURI = path + "?jsp_precompile=true";
+ Request request = cm.createRequest(context, requestURI);
+ Response response = request.getResponse();
+ request.setHandler(this);
+
+ 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 ;
+ }
+ }
// Special hook
protected void preInit() throws Exception
{
@@ -406,7 +428,9 @@
// remain in STATE_DELAYED_INIT state
return;
}
-
+ if(sw.getJspFile() != null &&
+ (servletClassName==null || servletClassName==name ))
+ loadJsp();
// clear STATE_DELAYED_INIT if set
setState( STATE_ADDED );
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>