You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cl...@apache.org on 2008/07/03 16:33:21 UTC
svn commit: r673689 -
/felix/trunk/ipojo/extender.pattern.handler/src/main/java/org/apache/felix/ipojo/handler/extender/ExtenderManager.java
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);