You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2010/05/13 17:40:00 UTC
svn commit: r943917 -
/felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java
Author: rickhall
Date: Thu May 13 15:40:00 2010
New Revision: 943917
URL: http://svn.apache.org/viewvc?rev=943917&view=rev
Log:
Fire event without bundle lock. (FELIX-2035)
Modified:
felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java
Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java?rev=943917&r1=943916&r2=943917&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java Thu May 13 15:40:00 2010
@@ -4135,9 +4135,9 @@ m_logger.log(Logger.LOG_DEBUG, "DYNAMIC
BundleImpl bundle = (BundleImpl) module.getBundle();
// Lock the bundle first.
+ boolean fire = false;
try
{
-// TODO: RESOLVER - Seems like we should release the lock before we fire the event.
// Acquire bundle lock.
try
{
@@ -4158,7 +4158,7 @@ m_logger.log(Logger.LOG_DEBUG, "DYNAMIC
else
{
setBundleStateAndNotify(bundle, Bundle.RESOLVED);
- fireBundleEvent(BundleEvent.RESOLVED, bundle);
+ fire = true;
}
}
}
@@ -4166,6 +4166,12 @@ m_logger.log(Logger.LOG_DEBUG, "DYNAMIC
{
releaseBundleLock(bundle);
}
+
+ // Fire event while not holding the bundle lock.
+ if (fire)
+ {
+ fireBundleEvent(BundleEvent.RESOLVED, bundle);
+ }
}
}