incubator-sling-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cziege...@apache.org
Subject svn commit: r1570565 - /sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java
Date Fri, 21 Feb 2014 13:12:33 GMT
Author: cziegeler
Date: Fri Feb 21 13:12:33 2014
New Revision: 1570565

URL: http://svn.apache.org/r1570565
Log:
SLING-3400 : Sling holds resource providers after they have been unregistered

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

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java?rev=1570565&r1=1570564&r2=1570565&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java
(original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java
Fri Feb 21 13:12:33 2014
@@ -187,7 +187,7 @@ public class ResourceResolverFactoryActi
               description = "This flag controls whether all resources with a sling:vanityPath
property " +
                             "are processed and added to the mappoing table.")
     private static final String PROP_ENABLE_VANITY_PATH = "resource.resolver.enable.vanitypath";
-    
+
     private static final boolean DEFAULT_ENABLE_OPTIMIZE_ALIAS_RESOLUTION = true;
     @Property(boolValue = DEFAULT_ENABLE_OPTIMIZE_ALIAS_RESOLUTION ,
               label = "Optimize alias resolution",
@@ -265,7 +265,7 @@ public class ResourceResolverFactoryActi
 
     /** vanityPath enabled? */
     private boolean enableVanityPath = DEFAULT_ENABLE_VANITY_PATH;
-    
+
     /** alias resource resolution optimization enabled? */
     private boolean enableOptimizeAliasResolution = DEFAULT_ENABLE_OPTIMIZE_ALIAS_RESOLUTION;
 
@@ -337,7 +337,7 @@ public class ResourceResolverFactoryActi
     public boolean isVanityPathEnabled() {
         return this.enableVanityPath;
     }
-    
+
     public boolean isOptimizeAliasResolutionEnabled() {
         return this.enableOptimizeAliasResolution;
     }
@@ -405,7 +405,7 @@ public class ResourceResolverFactoryActi
         defaultVanityPathRedirectStatus = PropertiesUtil.toInteger(properties.get(PROP_DEFAULT_VANITY_PATH_REDIRECT_STATUS),
                                                                    MapEntries.DEFAULT_DEFAULT_VANITY_PATH_REDIRECT_STATUS);
         this.enableVanityPath = PropertiesUtil.toBoolean(properties.get(PROP_ENABLE_VANITY_PATH),
DEFAULT_ENABLE_VANITY_PATH);
-        
+
         this.enableOptimizeAliasResolution = PropertiesUtil.toBoolean(properties.get(PROP_ENABLE_OPTIMIZE_ALIAS_RESOLUTION),
DEFAULT_ENABLE_OPTIMIZE_ALIAS_RESOLUTION);
 
         final BundleContext bc = componentContext.getBundleContext();
@@ -473,7 +473,6 @@ public class ResourceResolverFactoryActi
 
         if ( local != null ) {
             // activate and register factory
-
             final Dictionary<String, Object> serviceProps = new Hashtable<String,
Object>();
             serviceProps.put(Constants.SERVICE_VENDOR, localContext.getProperties().get(Constants.SERVICE_VENDOR));
             serviceProps.put(Constants.SERVICE_DESCRIPTION, localContext.getProperties().get(Constants.SERVICE_DESCRIPTION));
@@ -557,6 +556,14 @@ public class ResourceResolverFactoryActi
         this.rootProviderEntry.unbindResourceProviderFactory(provider, props);
         this.preconds.unbindProvider(props);
         this.checkFactoryPreconditions();
+        boolean unregister = false;
+        synchronized ( this ) {
+            unregister = this.factoryRegistration != null;
+        }
+        if (unregister ) {
+            this.unregisterFactory();
+            this.checkFactoryPreconditions();
+        }
     }
 
     /**



Mime
View raw message