Author: fmeschbe
Date: Mon May 25 21:13:24 2009
New Revision: 778512
URL: http://svn.apache.org/viewvc?rev=778512&view=rev
Log:
FELIX-1178 Add m_pendingDeactivation flag to ensure a component is scheduled
for activation if deactivation is scheduled but the component is still active
if a service reference change occurrs
Modified:
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java
Modified:
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java
URL:
http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java?rev=778512&r1=778511&r2=778512&view=diff
==============================================================================
---
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java
(original)
+++
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java
Mon May 25 21:13:24 2009
@@ -201,11 +201,13 @@
private void serviceAdded( ServiceReference reference )
{
// if the component is currently unsatisfied, it may become satisfied
- // by adding this service, try to activate
- if ( m_componentManager.getState() ==
AbstractComponentManager.STATE_UNSATISFIED )
+ // by adding this service, try to activate (also schedule activation
+ // if the component is pending deactivation)
+ if ( m_componentManager.getState() ==
AbstractComponentManager.STATE_UNSATISFIED
+ || m_componentManager.isPendingDeactivate() )
{
m_componentManager.log( LogService.LOG_INFO, "Dependency Manager:
Service "
- + m_dependencyMetadata.getName() + " registered, trying to
activate", m_componentManager
+ + m_dependencyMetadata.getName() + " registered, activate
component", m_componentManager
.getComponentMetadata(), null );
m_componentManager.activate();