fixed memory leak in remove(Dependency) method

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1023376 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java b/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java
index f828266..940f4bb 100644
--- a/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java
+++ b/dependencymanager/compat/src/main/java/org/apache/felix/dependencymanager/impl/ServiceImpl.java
@@ -49,10 +49,6 @@
 
     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 @@
         {
             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());