You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2012/03/14 16:21:34 UTC

svn commit: r1300588 - /felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java

Author: gnodet
Date: Wed Mar 14 15:21:34 2012
New Revision: 1300588

URL: http://svn.apache.org/viewvc?rev=1300588&view=rev
Log:
[FELIX-3393] Possible deadlock with reentrant calls

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=1300588&r1=1300587&r2=1300588&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 Wed Mar 14 15:21:34 2012
@@ -4847,7 +4847,8 @@ public class Felix extends BundleImpl im
             // holds the global lock or the bundle lock already.
             while (!bundle.isLockable() ||
                 ((m_globalLockThread != null)
-                    && (m_globalLockThread != Thread.currentThread())))
+                    && (m_globalLockThread != Thread.currentThread())
+                    && (bundle.getLockingThread() != Thread.currentThread())))
             {
                 // Check to make sure the bundle is in a desired state.
                 // If so, keep waiting. If not, throw an exception.