You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2020/02/26 12:09:17 UTC

[tomcat] branch 7.0.x updated: Fix path used in findResources

This is an automated email from the ASF dual-hosted git repository.

remm pushed a commit to branch 7.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/7.0.x by this push:
     new c9c52ba  Fix path used in findResources
c9c52ba is described below

commit c9c52ba3ec3f07f019dbd246574088fb07891d24
Author: remm <re...@apache.org>
AuthorDate: Wed Feb 26 13:08:59 2020 +0100

    Fix path used in findResources
    
    The leading / should be stripped when looking things up in the JARs.
---
 java/org/apache/catalina/loader/WebappClassLoaderBase.java | 5 +++--
 webapps/docs/changelog.xml                                 | 4 ++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/java/org/apache/catalina/loader/WebappClassLoaderBase.java b/java/org/apache/catalina/loader/WebappClassLoaderBase.java
index ded743d..91f2a83 100644
--- a/java/org/apache/catalina/loader/WebappClassLoaderBase.java
+++ b/java/org/apache/catalina/loader/WebappClassLoaderBase.java
@@ -1571,14 +1571,15 @@ public abstract class WebappClassLoaderBase extends URLClassLoader
         }
 
         // Looking at the JAR files
+        String jarPath = (name.startsWith("/")) ? name.substring(1) : name;
         synchronized (jarFiles) {
             if (openJARs()) {
                 for (i = 0; i < jarFilesLength; i++) {
-                    JarEntry jarEntry = jarFiles[i].getJarEntry(name);
+                    JarEntry jarEntry = jarFiles[i].getJarEntry(jarPath);
                     if (jarEntry != null) {
                         try {
                             String jarFakeUrl = getURI(jarRealFiles[i]).toString();
-                            result.add(UriUtil.buildJarUrl(jarFakeUrl, name));
+                            result.add(UriUtil.buildJarUrl(jarFakeUrl, jarPath));
                         } catch (MalformedURLException e) {
                             // Ignore
                         }
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 9896a36..10d3845 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -76,6 +76,10 @@
         <bug>64166</bug>: Ensure that the names returned by
         <code>HttpServletResponse.getHeaderNames()</code> are unique. (markt)
       </fix>
+      <fix>
+        Fix SCI support regression that was caused by a JAR path lookup error
+        in the classloader findResources. (remm)
+      </fix>
     </changelog>
   </subsection>
 </section>


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