Fix FELIX-4076
https://issues.apache.org/jira/browse/FELIX-4096
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1488880 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/IPojoFactory.java b/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/IPojoFactory.java
index 3214127..862eb9a 100644
--- a/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/IPojoFactory.java
+++ b/ipojo/runtime/core/src/main/java/org/apache/felix/ipojo/IPojoFactory.java
@@ -84,7 +84,7 @@
/**
* The list of required handlers.
*/
- protected List<RequiredHandler> m_requiredHandlers = new ArrayList<RequiredHandler>();
+ protected final List<RequiredHandler> m_requiredHandlers = new ArrayList<RequiredHandler>();
/**
* The list of factory state listeners.
@@ -161,7 +161,7 @@
m_version = version;
}
- m_requiredHandlers = getRequiredHandlerList(); // Call sub-class to get the list of required handlers.
+ m_requiredHandlers.addAll(getRequiredHandlerList()); // Call sub-class to get the list of required handlers.
m_logger.log(Logger.INFO, "New factory created : " + m_factoryName);
}
@@ -588,7 +588,7 @@
*/
synchronized void dispose() {
stop(); // Does not hold the lock.
- m_requiredHandlers = null;
+ m_requiredHandlers.clear();
m_listeners = null;
}
@@ -643,7 +643,8 @@
*/
public void restart() {
// Call sub-class to get the list of required handlers.
- m_requiredHandlers = getRequiredHandlerList();
+ m_requiredHandlers.clear();
+ m_requiredHandlers.addAll(getRequiredHandlerList());
}
/**