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);
}