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 2009/01/20 21:24:54 UTC

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

Author: rickhall
Date: Tue Jan 20 12:24:54 2009
New Revision: 736089

URL: http://svn.apache.org/viewvc?rev=736089&view=rev
Log:
Needed to loosen locking otherwise a deadlock could occur during framework
startup. (FELIX-851)

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=736089&r1=736088&r2=736089&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 Tue Jan 20 12:24:54 2009
@@ -91,7 +91,7 @@
     private final Object[] m_uninstalledBundlesLock_Priority3 = new Object[0];
 
     // Framework's active start level.
-    private int m_activeStartLevel = FelixConstants.FRAMEWORK_INACTIVE_STARTLEVEL;
+    private volatile int m_activeStartLevel = FelixConstants.FRAMEWORK_INACTIVE_STARTLEVEL;
 
     // Local file system cache.
     private BundleCache m_cache = null;
@@ -796,7 +796,7 @@
      * implements functionality for the Start Level service.
      * @return The active start level of the framework.
     **/
-    synchronized int getActiveStartLevel()
+    int getActiveStartLevel()
     {
         return m_activeStartLevel;
     }
@@ -839,14 +839,10 @@
         // for two requests to change the framework's start level to interfere
         // with each other.
 
-        boolean lowering;
-        synchronized (this)
-        {
-            // Determine if we are lowering or raising the
-            // active start level, then udpate active start level.
-            lowering = (requestedLevel < getActiveStartLevel());
-            m_activeStartLevel = requestedLevel;
-        }
+        // Determine if we are lowering or raising the
+        // active start level, then udpate active start level.
+        boolean lowering = (requestedLevel < getActiveStartLevel());
+        m_activeStartLevel = requestedLevel;
 
         synchronized (m_installedBundleLock_Priority2)
         {
@@ -4282,4 +4278,4 @@
             m_bundleLock.notifyAll();
         }
     }
-}
\ No newline at end of file
+}