From: rjung Date: Thu, 22 Apr 2010 15:14:11 +0000 (+0000) Subject: Respect configurable search order in getURLs(). X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=fc7b1dd3b4803758ceea4588e09036ab8224fb8c;p=tomcat7.0 Respect configurable search order in getURLs(). git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@936892 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/loader/WebappClassLoader.java b/java/org/apache/catalina/loader/WebappClassLoader.java index 29197271c..484d6cfcd 100644 --- a/java/org/apache/catalina/loader/WebappClassLoader.java +++ b/java/org/apache/catalina/loader/WebappClassLoader.java @@ -1679,19 +1679,30 @@ public class WebappClassLoader int filesLength = files.length; int jarFilesLength = jarRealFiles.length; - int length = filesLength + jarFilesLength + external.length; + int externalsLength = external.length; + int off = 0; int i; try { - URL[] urls = new URL[length]; - for (i = 0; i < length; i++) { - if (i < filesLength) { - urls[i] = getURL(files[i], true); - } else if (i < filesLength + jarFilesLength) { - urls[i] = getURL(jarRealFiles[i - filesLength], true); - } else { - urls[i] = external[i - filesLength - jarFilesLength]; + URL[] urls = new URL[filesLength + jarFilesLength + externalsLength]; + if (searchExternalFirst) { + for (i = 0; i < externalsLength; i++) { + urls[i] = external[i]; + } + off = externalsLength; + } + for (i = 0; i < filesLength; i++) { + urls[off + i] = getURL(files[i], true); + } + off += filesLength; + for (i = 0; i < jarFilesLength; i++) { + urls[off + i] = getURL(jarRealFiles[i], true); + } + off += jarFilesLength; + if (!searchExternalFirst) { + for (i = 0; i < externalsLength; i++) { + urls[off + i] = external[i]; } }