Author: clement
Date: Thu Jul 3 07:33:21 2008
New Revision: 673689
URL: http://svn.apache.org/viewvc?rev=673689&view=rev
Log:
Fix the issue Felix-613
The extender pattern handler may not call the callback when a managed bundle is
leaving. This issue is now solved, the handler always call the method
regardless the instance state. Indeed, the instance must release all references
on the leaving bundles.
Modified:
felix/trunk/ipojo/extender.pattern.handler/src/main/java/org/apache/felix/ipojo/handler/extender/ExtenderManager.java
Modified:
felix/trunk/ipojo/extender.pattern.handler/src/main/java/org/apache/felix/ipojo/handler/extender/ExtenderManager.java
URL:
http://svn.apache.org/viewvc/felix/trunk/ipojo/extender.pattern.handler/src/main/java/org/apache/felix/ipojo/handler/extender/ExtenderManager.java?rev=673689&r1=673688&r2=673689&view=diff
==============================================================================
---
felix/trunk/ipojo/extender.pattern.handler/src/main/java/org/apache/felix/ipojo/handler/extender/ExtenderManager.java
(original)
+++
felix/trunk/ipojo/extender.pattern.handler/src/main/java/org/apache/felix/ipojo/handler/extender/ExtenderManager.java
Thu Jul 3 07:33:21 2008
@@ -85,9 +85,9 @@
String header = (String) headers.get(m_extension);
if (header != null) {
synchronized (this) {
- m_bundleSet.add(bundle);
+ m_bundles.add(bundle);
}
- try {
+ try { // Call the callback outside the synchronized block.
m_onArrival.call(new Object[] {bundle, header});
} catch (NoSuchMethodException e) {
m_handler.error("The onArrival method " +
m_onArrival.getMethod() + " does not exist in the class", e);