You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ho...@apache.org on 2001/01/05 23:33:03 UTC

cvs commit: jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/servlet JspServlet.java

horwat      01/01/05 14:33:03

  Modified:    jasper/src/share/org/apache/jasper/compiler Compiler.java
                        JspCompiler.java
               jasper/src/share/org/apache/jasper/servlet JspServlet.java
  Log:
    If the JSP page can't be found have the compiler remove any previously
    generated .class file.  This will happen if a JSP page is removed after
    it has been previously compiled.
  
    Added test to isOutDated() to check for the existence of the JSP page in
    addtion to checking the timestamps.  If the JSP page has been removed
    a 404 error is returned to the client and the associated .class file
    is removed.
  
    Added a method to remove the generated .class file.  This will be called
    to remove generated files in the event that the associated JSP page is
    removed.
    PR: 698
  
    Submitted by Marc Saegesser.
  
  Revision  Changes    Path
  1.7       +19 -3     jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/Compiler.java
  
  Index: Compiler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/Compiler.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Compiler.java	2000/12/22 01:27:38	1.6
  +++ Compiler.java	2001/01/05 22:33:02	1.7
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/Compiler.java,v 1.6 2000/12/22 01:27:38 pierred Exp $
  - * $Revision: 1.6 $
  - * $Date: 2000/12/22 01:27:38 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/Compiler.java,v 1.7 2001/01/05 22:33:02 horwat Exp $
  + * $Revision: 1.7 $
  + * $Date: 2001/01/05 22:33:02 $
    *
    * ====================================================================
    * 
  @@ -386,6 +386,22 @@
   	    }
   	}
   	return null;
  +    }
  +
  +    /**
  +     * Remove generated files
  +     */
  +    public void removeGeneratedFiles() {
  +        try {
  +            // XXX Should we delete the generated .java file too?
  +            String classFileName = mangler.getClassFileName();
  +            if (classFileName != null) {
  +                File classFile = new File(classFileName);
  +                classFile.delete();
  +            }
  +        } catch (Exception e) {
  +            //Remove as much as possible, ignore possible exceptions
  +        }
       }
   }
   
  
  
  
  1.2       +4 -0      jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspCompiler.java
  
  Index: JspCompiler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/compiler/JspCompiler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JspCompiler.java	2000/08/12 00:52:08	1.1
  +++ JspCompiler.java	2001/01/05 22:33:02	1.2
  @@ -311,6 +311,10 @@
   
           jspReal = new File(ctxt.getRealPath(jsp.getPath()));
   
  +        if (!jspReal.exists()) {
  +            return true;
  +        }
  +
           File classFile = new File(getClassFileName());
           if (classFile.exists()) {
               outDated = classFile.lastModified() < jspReal.lastModified();
  
  
  
  1.9       +1 -0      jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/servlet/JspServlet.java
  
  Index: JspServlet.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/jasper/src/share/org/apache/jasper/servlet/JspServlet.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- JspServlet.java	2000/12/14 23:55:17	1.8
  +++ JspServlet.java	2001/01/05 22:33:03	1.9
  @@ -485,6 +485,7 @@
   		}
               }
           } catch (FileNotFoundException ex) {
  +            compiler.removeGeneratedFiles();
               throw ex;
           } catch (JasperException ex) {
               throw ex;