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">