You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by fm...@apache.org on 2007/11/28 18:50:27 UTC

svn commit: r599073 - /felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java

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