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


Reply via email to