FELIX-425 Decrement service counter when a service is removed whose
target filter matches regardless of whether the service is actually
bound or not

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@599073 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java b/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java
index dbd4d89..57d2a3a 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java
@@ -217,15 +217,25 @@
      */
     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() )
         {
             // if the dependency is not satisfied anymore, we have to