You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by dj...@apache.org on 2012/09/26 18:23:55 UTC

svn commit: r1390591 - in /felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager: AbstractComponentManager.java ImmediateComponentManager.java ServiceFactoryComponentManager.java

Author: djencks
Date: Wed Sep 26 16:23:54 2012
New Revision: 1390591

URL: http://svn.apache.org/viewvc?rev=1390591&view=rev
Log:
FELIX-3681 discard dependency map when we discard the implementation object

Modified:
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java?rev=1390591&r1=1390590&r2=1390591&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java Wed Sep 26 16:23:54 2012
@@ -856,6 +856,11 @@ public abstract class AbstractComponentM
         return m_dependencies_map.compareAndSet( old, newDeps );
     }
 
+    protected void unsetDependencyMap()
+    {
+        m_dependencies_map.set( null );
+    }
+
     private void returnServices( Map deps )
     {
          for (Iterator it = deps.values().iterator(); it.hasNext(); )
@@ -1385,7 +1390,7 @@ public abstract class AbstractComponentM
                 {
                     acm.deleteComponent( reason );
                     acm.deactivateDependencyManagers();
-                    acm.m_dependencies_map.set( null );
+                    acm.unsetDependencyMap();
                 }
                 finally
                 {

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java?rev=1390591&r1=1390590&r2=1390591&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java Wed Sep 26 16:23:54 2012
@@ -692,6 +692,7 @@ public class ImmediateComponentManager e
                         if ( m_useCount == 0 )
                         {
                             state().ungetService( this );
+                            unsetDependencyMap();
                         }
                     }
                     finally

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java?rev=1390591&r1=1390590&r2=1390591&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java Wed Sep 26 16:23:54 2012
@@ -186,6 +186,7 @@ public class ServiceFactoryComponentMana
             if ( serviceContexts.isEmpty() && getState() == STATE_ACTIVE )
             {
                 changeState( Registered.getInstance() );
+                unsetDependencyMap();
             }
         }
         finally