Author: fmeschbe
Date: Wed Nov 28 09:50:22 2007
New Revision: 599073
URL: http://svn.apache.org/viewvc?rev=599073&view=rev
Log:
FELIX-425 Decrement service counter when a service is removed whose
target filter matches regardless of whether the service is actually
bound or not
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=599073&r1=599072&r2=599073&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
Wed Nov 28 09:50:22 2007
@@ -217,14 +217,24 @@
*/
private void serviceRemoved( ServiceReference reference )
{
- // check whether we are bound to that service, do nothing if not
- if ( getBoundService( reference ) == null )
+ // ignore the service, if it does not match the target filter
+ if ( !targetFilterMatch( reference ) )
{
+ m_componentManager.getActivator().log( LogService.LOG_DEBUG,
+ "Dependency Manager: Ignoring removed Service for " +
m_dependencyMetadata.getName()
+ + " : does not match target filter " + getTarget(),
m_componentManager.getComponentMetadata(),
+ null );
return;
}
// decrement the number of services
m_size--;
+
+ // check whether we are bound to that service, do nothing if not
+ if ( getBoundService( reference ) == null )
+ {
+ return;
+ }
if ( handleServiceEvent() )
{