[FELIX-4325] [DS] Synchronization issue when activating component

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1543743 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
index dacad1b..a3322bd 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
@@ -807,6 +807,24 @@
         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() )