Author: gnodet
Date: Wed Nov 20 09:52:29 2013
New Revision: 1543743

URL: http://svn.apache.org/r1543743
Log:
[FELIX-4325] [DS] Synchronization issue when activating component

Modified:
    
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.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=1543743&r1=1543742&r2=1543743&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 Nov 20 09:52:29 2013
@@ -807,6 +807,24 @@ public abstract class AbstractComponentM
         obtainActivationReadLock( "activateInternal" );
         try
         {
+            // Double check conditions now that we have obtained the lock
+            if ( m_disposed )
+            {
+                log( LogService.LOG_DEBUG, "ActivateInternal: disposed",
+                        null );
+                return;
+            }
+            if ( m_activated ) {
+                log( LogService.LOG_DEBUG, "ActivateInternal: already 
activated",
+                        null );
+                return;
+            }
+            if ( !isEnabled() )
+            {
+                log( LogService.LOG_DEBUG, "Component is not enabled; not 
activating component",
+                        null );
+                return;
+            }
             // Before creating the implementation object, we are going to
             // test if all the mandatory dependencies are satisfied
             if ( !verifyDependencyManagers() )


Reply via email to