SLING-9782 : Failure in loading vanity paths due to query limit being reached
diff --git a/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java b/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java
index b382756..95f174b 100644
--- a/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java
+++ b/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java
@@ -194,10 +194,10 @@
return this.factory.isOptimizeAliasResolutionEnabled();
}
- boolean result = this.factory.isOptimizeAliasResolutionEnabled();
+ boolean isOptimizeAliasResolutionEnabled = this.factory.isOptimizeAliasResolutionEnabled();
//optimization made in SLING-2521
- if (result) {
+ if (isOptimizeAliasResolutionEnabled) {
try {
final Map<String, Map<String, String>> loadedMap = this.loadAliases(resolver);
this.aliasMap = loadedMap;
@@ -207,7 +207,7 @@
logDisableAliasOptimization(e);
// disable optimize alias resolution
- result = false;
+ isOptimizeAliasResolutionEnabled = false;
}
}
@@ -217,7 +217,7 @@
sendChangeEvent();
- return result;
+ return isOptimizeAliasResolutionEnabled;
} finally {
@@ -1388,7 +1388,9 @@
}
}
- private final AtomicLong logCounter = new AtomicLong(0);
+ private final AtomicLong lastTimeLogged = new AtomicLong(-1);
+
+ private final long LOGGING_ERROR_PERIOD = 1000 * 60 * 5;
@Override
public void logDisableAliasOptimization() {
@@ -1399,7 +1401,8 @@
if ( e != null ) {
log.error("Unexpected problem during initialization of optimize alias resolution. Therefore disabling optimize alias resolution. Please fix the problem.", e);
} else {
- if ( logCounter.incrementAndGet() % 1000 == 0 ) {
+ final long now = System.currentTimeMillis();
+ if ( now - lastTimeLogged.getAndSet(now) > LOGGING_ERROR_PERIOD) {
log.error("A problem occured during initialization of optimize alias resolution. Optimize alias resolution is disabled. Check the logs for the reported problem.", e);
}
}