Merge pull request #1 from apache/bugfix/refresh-resourcetyperesolver
SLING-7313 refresh the resource type resolver as well
diff --git a/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTracker.java b/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTracker.java
index f524cbf..85cc1c3 100644
--- a/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTracker.java
+++ b/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTracker.java
@@ -349,7 +349,9 @@
* @param handler The provider handler
*/
private boolean activate(final ResourceProviderHandler handler) {
- updateProviderContext(handler);
+ synchronized (this.handlers) {
+ updateProviderContext(handler);
+ }
if ( !handler.activate() ) {
logger.warn("Activating resource provider {} failed", handler.getInfo());
this.invalidProviders.put(handler.getInfo(), FailureReason.service_not_gettable);
@@ -481,11 +483,13 @@
private void updateProviderContext(final ResourceProviderHandler handler) {
final Set<String> excludedPaths = new HashSet<>();
final Path handlerPath = new Path(handler.getPath());
+
for(final String otherPath : handlers.keySet()) {
if ( !handler.getPath().equals(otherPath) && handlerPath.matches(otherPath) ) {
excludedPaths.add(otherPath);
}
}
+
final PathSet excludedPathSet = PathSet.fromStringCollection(excludedPaths);
handler.getProviderContext().update(
reporterGenerator.create(handlerPath, excludedPathSet),