You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pd...@apache.org on 2010/10/16 22:49:55 UTC

svn commit: r1023376 - /felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java

Author: pderop
Date: Sat Oct 16 20:49:54 2010
New Revision: 1023376

URL: http://svn.apache.org/viewvc?rev=1023376&view=rev
Log:
fixed memory leak in remove(Dependency) method

Modified:
    felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java

Modified: felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java?rev=1023376&r1=1023375&r2=1023376&view=diff
==============================================================================
--- felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java (original)
+++ felix/trunk/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java Sat Oct 16 20:49:54 2010
@@ -49,10 +49,6 @@ public class ServiceImpl implements Serv
 
     public Service add(Dependency dependency)
     {
-        synchronized (this)
-        {
-            m_dependencies.add(dependency);
-        }
         if (dependency instanceof ServiceDependencyImpl)
         {
             m_delegate.add(((org.apache.felix.dependencymanager.impl.ServiceDependencyImpl) dependency).getDelegate());
@@ -66,11 +62,20 @@ public class ServiceImpl implements Serv
         {
             throw new IllegalArgumentException("dependency type not supported: " + dependency);
         }
+        
+        synchronized (this)
+        {
+            m_dependencies.add(dependency);
+        }
         return this;
     }
 
     public Service remove(Dependency dependency)
     {
+        synchronized (this)
+        {
+            m_dependencies.remove(dependency);
+        }
         if (dependency instanceof ServiceDependencyImpl)
         {
             m_delegate.remove(((org.apache.felix.dependencymanager.impl.ServiceDependencyImpl) dependency).getDelegate());