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/07/16 22:32:03 UTC

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

costin      01/07/16 13:32:03

  Modified:    src/facade22/org/apache/tomcat/facade JspInterceptor.java
  Log:
  One more simple fix for better jaxp1.1 support.
  
  Revision  Changes    Path
  1.26      +16 -1     jakarta-tomcat/src/facade22/org/apache/tomcat/facade/JspInterceptor.java
  
  Index: JspInterceptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/JspInterceptor.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- JspInterceptor.java	2001/06/17 18:09:16	1.25
  +++ JspInterceptor.java	2001/07/16 20:32:03	1.26
  @@ -77,6 +77,7 @@
   import org.apache.tomcat.core.*;
   import org.apache.tomcat.facade.*;
   
  +import org.apache.tomcat.util.compat.Jdk11Compat;
   /**
    * Plug in the JSP engine (a.k.a Jasper)!
    * Tomcat uses a "built-in" mapping for jsps ( *.jsp -> jsp ). "jsp"
  @@ -389,7 +390,6 @@
   	if( "jsp".equals( wrapper.getName())) {
   	    // if it's an extension mapped file, construct and map a handler
   	    jspFile=req.servletPath().toString();
  -	    
   	    // extension mapped jsp - define a new handler,
   	    // add the exact mapping to avoid future overhead
   	    handler= mapJspPage( req.getContext(), jspFile );
  @@ -608,6 +608,9 @@
   		log.log( "Update class Name " + mangler.getServletClassName());
   	    handler.setServletClassName( mangler.getServletClassName() );
   
  +	    // May be called from include, we need to set the context class loader
  +	    // for jaxp1.1 to work using the container class loader
  +	    ClassLoader savedContextCL= containerCCL( req.getClass().getClassLoader());
   	    
   	    try {
   		Options options=new JasperOptionsImpl(args); 
  @@ -622,6 +625,7 @@
   		if(debug>0)log.log( "Generated " +
   				    mangler.getClassFileName() );
               } catch ( java.io.FileNotFoundException fnfex ){
  +		containerCCL( savedContextCL );
   		return 404;
   	    } catch( Exception ex ) {
   		if( ctx!=null )
  @@ -631,14 +635,25 @@
   		handler.setErrorException(ex);
   		handler.setState(Handler.STATE_DISABLED);
   		// until the jsp cahnges, when it'll be enabled again
  +		containerCCL( savedContextCL );
   		return 500;
   	    }
   
  +	    containerCCL( savedContextCL );
  +	    
   	    dep.setExpired( false );
   	    
   	}
   
   	return 0;
  +    }
  +
  +    static final Jdk11Compat jdk11Compat=Jdk11Compat.getJdkCompat();
  +    
  +    ClassLoader containerCCL( ClassLoader cl ) {
  +	ClassLoader orig= jdk11Compat.getContextClassLoader();
  +	jdk11Compat.setContextClassLoader( cl );
  +	return orig;
       }
   
       /** Convert the .jsp file to a java file, then compile it to class