Re-order checks to avoid NPE. Identified by Coverity Scan.
diff --git a/java/org/apache/catalina/loader/WebappLoader.java b/java/org/apache/catalina/loader/WebappLoader.java
index 5c8183e..9b4f099 100644
--- a/java/org/apache/catalina/loader/WebappLoader.java
+++ b/java/org/apache/catalina/loader/WebappLoader.java
@@ -466,6 +466,9 @@
URL[] repositories = ((URLClassLoader) loader).getURLs();
for (URL url : repositories) {
String repository = url.toString();
+ if (repository == null) {
+ continue;
+ }
if (repository.startsWith("file:")) {
// Let the JRE handle all the edge cases for URL to path conversion.
try {
@@ -477,9 +480,6 @@
} else {
continue;
}
- if (repository == null) {
- continue;
- }
if (!classpath.isEmpty()) {
classpath.append(File.pathSeparator);
}
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 5ebd339..b735b3d 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -181,6 +181,11 @@
<code>RemoteAddrValve</code>. (markt)
</update>
<!-- Entries for backport and removal before 12.0.0-M1 below this line -->
+ <fix>
+ When generating the class path in the Loader, re-order the check on
+ individual class path components to avoid a potential
+ <code>NullPointerException</code>. Identified by Coverity Scan. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">