You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2015/03/12 15:22:16 UTC

svn commit: r1666209 - /sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java

Author: cziegeler
Date: Thu Mar 12 14:22:15 2015
New Revision: 1666209

URL: http://svn.apache.org/r1666209
Log:
SLING-4497 : Memory thread might be terminated by already unregistered bundles/services

Modified:
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java?rev=1666209&r1=1666208&r2=1666209&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java Thu Mar 12 14:22:15 2015
@@ -91,7 +91,11 @@ public class CommonResourceResolverFacto
                 while ( isActive.get() ) {
                     try {
                         final ResolverWeakReference ref = (ResolverWeakReference) resolverReferenceQueue.remove();
-                        ref.close();
+                        try {
+                            ref.close();
+                        } catch ( final Throwable t ) {
+                            // we ignore everything from there to not stop this thread
+                        }
                         refs.remove(ref.context.hashCode());
                     } catch ( final InterruptedException ie) {
                         Thread.currentThread().interrupt();
@@ -113,6 +117,7 @@ public class CommonResourceResolverFacto
     /**
      * @see org.apache.sling.api.resource.ResourceResolverFactory#getAdministrativeResourceResolver(java.util.Map)
      */
+    @Override
     public ResourceResolver getAdministrativeResourceResolver(final Map<String, Object> passedAuthenticationInfo)
     throws LoginException {
         if ( !isActive.get() ) {
@@ -134,6 +139,7 @@ public class CommonResourceResolverFacto
     /**
      * @see org.apache.sling.api.resource.ResourceResolverFactory#getResourceResolver(java.util.Map)
      */
+    @Override
     public ResourceResolver getResourceResolver(final Map<String, Object> passedAuthenticationInfo)
     throws LoginException {
         if ( !isActive.get() ) {
@@ -163,6 +169,7 @@ public class CommonResourceResolverFacto
     /**
      * @see org.apache.sling.api.resource.ResourceResolverFactory#getThreadResourceResolver()
      */
+    @Override
     public ResourceResolver getThreadResourceResolver() {
         if ( !isActive.get() ) {
             return null;
@@ -304,14 +311,17 @@ public class CommonResourceResolverFacto
         return this.activator.isMangleNamespacePrefixes();
     }
 
+    @Override
     public String getMapRoot() {
         return this.activator.getMapRoot();
     }
 
+    @Override
     public Mapping[] getMappings() {
         return this.activator.getMappings();
     }
 
+    @Override
     public BidiMap getVirtualURLMap() {
         return this.activator.getVirtualURLMap();
     }
@@ -320,6 +330,7 @@ public class CommonResourceResolverFacto
         return this.activator.getRootProviderEntry();
     }
 
+    @Override
     public int getDefaultVanityPathRedirectStatus() {
         return this.activator.getDefaultVanityPathRedirectStatus();
     }
@@ -331,31 +342,38 @@ public class CommonResourceResolverFacto
         return this.activator.getResourceAccessSecurityTracker();
     }
 
+    @Override
     public ResourceResolver getServiceResourceResolver(
             final Map<String, Object> authenticationInfo) throws LoginException {
         throw new IllegalStateException("This method is not implemented.");
     }
 
+    @Override
     public boolean isVanityPathEnabled() {
         return this.activator.isVanityPathEnabled();
     }
 
+    @Override
     public long getMaxCachedVanityPathEntries() {
         return this.activator.getMaxCachedVanityPathEntries();
     }
 
+    @Override
     public int getVanityBloomFilterMaxBytes() {
         return this.activator.getVanityBloomFilterMaxBytes();
     }
 
+    @Override
     public boolean isOptimizeAliasResolutionEnabled() {
         return this.activator.isOptimizeAliasResolutionEnabled();
     }
 
+    @Override
     public boolean hasVanityPathPrecedence() {
         return this.activator.hasVanityPathPrecedence();
     }
 
+    @Override
     public List<VanityPathConfig> getVanityPathConfig() {
         final String[] includes = this.activator.getVanityPathWhiteList();
         final String[] excludes = this.activator.getVanityPathBlackList();