Author: pauls Date: Mon Jul 24 15:15:01 2017 New Revision: 1802827 URL: http://svn.apache.org/viewvc?rev=1802827&view=rev Log: SLING-7019: Improve the MapEntries class by making sure we only use the resourceresolver while holding a lock and have not been disposed.
Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java?rev=1802827&r1=1802826&r2=1802827&view=diff ============================================================================== --- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java (original) +++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java Mon Jul 24 15:15:01 2017 @@ -267,7 +267,7 @@ public class MapEntries implements try { this.refreshResolverIfNecessary(resolverRefreshed); - final Resource resource = resolver.getResource(path); + final Resource resource = this.resolver != null ? resolver.getResource(path) : null; if (resource != null) { boolean changed = doAddVanity(resource); if (this.factory.isOptimizeAliasResolutionEnabled() && resource.getValueMap().containsKey(ResourceResolverImpl.PROP_ALIAS)) { @@ -289,7 +289,7 @@ public class MapEntries implements try { this.refreshResolverIfNecessary(resolverRefreshed); - final Resource resource = resolver.getResource(path); + final Resource resource = this.resolver != null ? resolver.getResource(path) : null; if (resource != null) { boolean changed = false; if ( isValidVanityPath ) { @@ -395,7 +395,7 @@ public class MapEntries implements this.aliasMap.remove(contentPath); } - Resource containingResource = this.resolver.getResource(resourcePath); + Resource containingResource = this.resolver != null ? this.resolver.getResource(resourcePath) : null; if (containingResource != null) { if (containingResource.getValueMap().containsKey(ResourceResolverImpl.PROP_ALIAS)) { @@ -684,8 +684,10 @@ public class MapEntries implements this.initializing.lock(); try { - refreshResolverIfNecessary(resolverRefreshed); - doUpdateConfiguration(); + if (this.resolver != null) { + refreshResolverIfNecessary(resolverRefreshed); + doUpdateConfiguration(); + } } finally { this.initializing.unlock(); }