Author: markt
Date: Fri Jan  4 17:06:12 2019
New Revision: 1850403

URL: http://svn.apache.org/viewvc?rev=1850403&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=63056
Correct a regression in the fix for bug 53737 that did not correctly scan the 
web application directory structure for JSPs.

Modified:
    tomcat/trunk/java/org/apache/jasper/JspC.java
    tomcat/trunk/java/org/apache/jasper/servlet/JspCServletContext.java
    tomcat/trunk/test/org/apache/jasper/servlet/TestJspCServletContext.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/jasper/JspC.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/JspC.java?rev=1850403&r1=1850402&r2=1850403&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/JspC.java (original)
+++ tomcat/trunk/java/org/apache/jasper/JspC.java Fri Jan  4 17:06:12 2019
@@ -1426,13 +1426,13 @@ public class JspC extends Task implement
         Set<String> paths = context.getResourcePaths(input);
         for (String path : paths) {
             if (path.endsWith("/")) {
-                scanFilesInternal(input.substring(0, input.length() -1) + 
path);
-            } else if (jspConfig.isJspPage(input + path)) {
+                scanFilesInternal(path);
+            } else if (jspConfig.isJspPage(path)) {
                 pages.add(path);
             } else {
                 String ext = path.substring(path.lastIndexOf('.') + 1);
                 if (extensions.contains(ext)) {
-                    pages.add(input + path.substring(1));
+                    pages.add(path);
                 }
             }
         }

Modified: tomcat/trunk/java/org/apache/jasper/servlet/JspCServletContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/servlet/JspCServletContext.java?rev=1850403&r1=1850402&r2=1850403&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/servlet/JspCServletContext.java 
(original)
+++ tomcat/trunk/java/org/apache/jasper/servlet/JspCServletContext.java Fri Jan 
 4 17:06:12 2019
@@ -475,11 +475,11 @@ public class JspCServletContext implemen
                             // Let the Set implementation handle duplicates
                             int sep = entryName.indexOf("/", jarPath.length());
                             if (sep < 0) {
-                                // This is a file
-                                
thePaths.add(entryName.substring(jarPath.length() - 1));
+                                // This is a file - strip leading 
"META-INF/resources"
+                                thePaths.add(entryName.substring(18));
                             } else {
-                                // This is a directory
-                                
thePaths.add(entryName.substring(jarPath.length() - 1, sep + 1));
+                                // This is a directory - strip leading 
"META-INF/resources"
+                                thePaths.add(entryName.substring(18, sep + 1));
                             }
                         }
                     }

Modified: 
tomcat/trunk/test/org/apache/jasper/servlet/TestJspCServletContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/jasper/servlet/TestJspCServletContext.java?rev=1850403&r1=1850402&r2=1850403&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/jasper/servlet/TestJspCServletContext.java 
(original)
+++ tomcat/trunk/test/org/apache/jasper/servlet/TestJspCServletContext.java Fri 
Jan  4 17:06:12 2019
@@ -141,7 +141,7 @@ public class TestJspCServletContext {
                 null, appDir.toURI().toURL(), null, false, false);
 
         Set<String> paths = context.getResourcePaths("/");
-        Assert.assertEquals(paths.size(), 10);
+        Assert.assertEquals(10, paths.size());
         Assert.assertTrue(paths.contains("/WEB-INF/"));
         Assert.assertTrue(paths.contains("/folder/"));
         Assert.assertTrue(paths.contains("/'singlequote.jsp"));
@@ -152,5 +152,11 @@ public class TestJspCServletContext {
         Assert.assertTrue(paths.contains("/resourceB.jsp"));
         Assert.assertTrue(paths.contains("/resourceF.jsp"));
         Assert.assertTrue(paths.contains("/warDirContext.jsp"));
+
+        paths = context.getResourcePaths("/folder/");
+        Assert.assertEquals(3, paths.size());
+        Assert.assertTrue(paths.contains("/folder/resourceC.jsp"));
+        Assert.assertTrue(paths.contains("/folder/resourceD.jsp"));
+        Assert.assertTrue(paths.contains("/folder/resourceE.jsp"));
     }
 }

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1850403&r1=1850402&r2=1850403&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Fri Jan  4 17:06:12 2019
@@ -104,6 +104,15 @@
       </fix>
     </changelog>
   </subsection>
+  <subsection name="Jasper">
+    <changelog>
+      <fix>
+        <bug>63056</bug>: Correct a regression in the fix for <bug>53737</bug>
+        that did not correctly scan the web application directory structure for
+        JSPs. (markt)
+      </fix>
+    </changelog>
+  </subsection>
   <subsection name="WebSocket">
     <changelog>
       <fix>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to