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();
}
}
}
-
}