[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() )