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;