You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ma...@apache.org on 2013/01/15 11:11:39 UTC

svn commit: r1433337 - /felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyManager.java

Author: marrs
Date: Tue Jan 15 10:11:39 2013
New Revision: 1433337

URL: http://svn.apache.org/viewvc?rev=1433337&view=rev
Log:
FELIX-3402 Applied a slightly modified version of the patch.

Modified:
    felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyManager.java

Modified: felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyManager.java?rev=1433337&r1=1433336&r2=1433337&view=diff
==============================================================================
--- felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyManager.java (original)
+++ felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/DependencyManager.java Tue Jan 15 10:11:39 2013
@@ -603,16 +603,18 @@ public class DependencyManager {
      * Removes all components and their dependencies.
      */
     public void clear() {
-        List services = getComponents();
-        for (int i = services.size() - 1; i >= 0; i--) {
-            Component service = (Component) services.get(i);
-            remove(service);
+    	Component[] components;
+    	synchronized (m_components) {
+			components = (Component[]) m_components.toArray(new Component[m_components.size()]);
+    	}
+        for (int i = components.length - 1; i >= 0; i--) {
+            Component component = (Component) components[i];
+            remove(component);
             // remove any state listeners that are still registered
-            if (service instanceof ComponentImpl) {
-                ComponentImpl si = (ComponentImpl) service;
+            if (component instanceof ComponentImpl) {
+                ComponentImpl si = (ComponentImpl) component;
                 si.removeStateListeners();
             }
         }
     }
-    
 }