Re: [PROPOSED 3.2B7 PATCH] error displayed for case mismatch in JSP URL

2000-11-16 Thread Craig R. McClanahan

+1

Craig


Larry Isaacs wrote:

 In Tomcat 3.2b7 (and earlier), invoking
 http://localhost:8080/test/jsp/Helloworld.jsp results in an NPE in
 JspCompiler.isOutDated().  This occurs because getRealPath() returns
 null since the 'w' should be uppercase, hence it is considered an
 "unsafe" path.  To make this error return "file not found", I propose
 the following patches for 3.2b7.

 = JspCompiler.java Patch =
 RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/JspCompiler.java,v
 retrieving revision 1.14.2.1
 diff -u -r1.14.2.1 JspCompiler.java
 --- JspCompiler.java2000/07/25 20:45:09 1.14.2.1
 +++ JspCompiler.java2000/11/15 12:13:12
 @@ -304,7 +304,11 @@
  public boolean isOutDated() {
  File jspReal = null;

 -jspReal = new File(ctxt.getRealPath(jsp.getPath()));
 +String realPath = ctxt.getRealPath(jsp.getPath());
 +if (realPath == null)
 +return true;
 +
 +jspReal = new File(realPath);

  File classFile = new File(getClassFileName());
  if (classFile.exists()) {
 ==

 = JspReader.java patch =
 RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/JspReader.java,v
 retrieving revision 1.16.2.4
 diff -u -r1.16.2.4 JspReader.java
 --- JspReader.java  2000/11/06 04:08:14 1.16.2.4
 +++ JspReader.java  2000/11/15 12:12:29
 @@ -171,6 +171,9 @@
 ? file.getAbsolutePath()
 : context.getRealPath(file.toString());

 +   if (longName == null)
 +   throw new FileNotFoundException(file.toString());
 +
 int fileid = registerSourceFile(longName);

  if (fileid == -1)
 

 This probably won't eliminate the head scratching, but at least they will
 be scratching their heads for the right reason. :-)  Also, this will make
 section 6.7 in the Readme correct about the error seen due to a case mismatch.

 If no one objects, I'll commit these changes this afternoon.

 Cheers,
 Larry

 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



[PROPOSED 3.2B7 PATCH] error displayed for case mismatch in JSP URL

2000-11-15 Thread Larry Isaacs

In Tomcat 3.2b7 (and earlier), invoking
http://localhost:8080/test/jsp/Helloworld.jsp results in an NPE in
JspCompiler.isOutDated().  This occurs because getRealPath() returns
null since the 'w' should be uppercase, hence it is considered an
"unsafe" path.  To make this error return "file not found", I propose
the following patches for 3.2b7.

= JspCompiler.java Patch =
RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/JspCompiler.java,v
retrieving revision 1.14.2.1
diff -u -r1.14.2.1 JspCompiler.java
--- JspCompiler.java2000/07/25 20:45:09 1.14.2.1
+++ JspCompiler.java2000/11/15 12:13:12
@@ -304,7 +304,11 @@
 public boolean isOutDated() {
 File jspReal = null;
 
-jspReal = new File(ctxt.getRealPath(jsp.getPath()));
+String realPath = ctxt.getRealPath(jsp.getPath());
+if (realPath == null)
+return true;
+
+jspReal = new File(realPath);
 
 File classFile = new File(getClassFileName());
 if (classFile.exists()) {
==

= JspReader.java patch =
RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/jasper/compiler/JspReader.java,v
retrieving revision 1.16.2.4
diff -u -r1.16.2.4 JspReader.java
--- JspReader.java  2000/11/06 04:08:14 1.16.2.4
+++ JspReader.java  2000/11/15 12:12:29
@@ -171,6 +171,9 @@
? file.getAbsolutePath()
: context.getRealPath(file.toString());
 
+   if (longName == null)
+   throw new FileNotFoundException(file.toString());
+
int fileid = registerSourceFile(longName);

 if (fileid == -1)


This probably won't eliminate the head scratching, but at least they will
be scratching their heads for the right reason. :-)  Also, this will make
section 6.7 in the Readme correct about the error seen due to a case mismatch.

If no one objects, I'll commit these changes this afternoon.

Cheers,
Larry

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]