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