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


Reply via email to