SLING-7134 - Script execution order is not deterministic on Java 9
diff --git a/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java b/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java
index 10d2cad..4064743 100644
--- a/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java
+++ b/src/main/java/org/apache/sling/servlets/resolver/internal/helper/AbstractResourceCollector.java
@@ -80,12 +80,14 @@
                 if (StringUtils.isNotEmpty(o1Extension) && StringUtils.isNotEmpty(o2Extension)) {
                     int o1ExtensionIndex = scriptExtensions.indexOf(o1Extension);
                     int o2ExtensionIndex = scriptExtensions.indexOf(o2Extension);
-                    if (o1ExtensionIndex > o2ExtensionIndex) {
-                        return -1;
-                    } else if (o1ExtensionIndex == o2ExtensionIndex) {
+
+                    if (o1ExtensionIndex == o2ExtensionIndex || o1ExtensionIndex == -1 || o2ExtensionIndex == -1) {
                         return o1.compareTo(o2);
+                    } else if (o1ExtensionIndex > o2ExtensionIndex) {
+                        return -1;
+                    } else {
+                        return 1;
                     }
-                    return 1;
                 }
                 return o1.compareTo(o2);
             }