You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cc...@apache.org on 2009/12/09 18:32:12 UTC

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

Author: ccustine
Date: Wed Dec  9 17:32:12 2009
New Revision: 888883

URL: http://svn.apache.org/viewvc?rev=888883&view=rev
Log:
FELIX-1929 - getStartLevel() always reports requested start level, not active start level

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=888883&r1=888882&r2=888883&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 Dec  9 17:32:12 2009
@@ -960,9 +960,8 @@
             // with each other.
 
             // Determine if we are lowering or raising the
-            // active start level, then udpate active start level.
+            // active start level.
             boolean lowering = (requestedLevel < getActiveStartLevel());
-            m_activeStartLevel = requestedLevel;
 
             synchronized (m_installedBundleLock_Priority2)
             {
@@ -1065,8 +1064,14 @@
                     if (((impl.getPersistentState() == Bundle.ACTIVE)
                         || (impl.getPersistentState() == Bundle.STARTING))
                         && (impl.getStartLevel(getInitialBundleStartLevel())
-                            <= getActiveStartLevel()))
+                            <= requestedLevel))
                     {
+
+                        if (m_activeStartLevel != impl.getStartLevel(getInitialBundleStartLevel()))
+                        {
+                            m_activeStartLevel = impl.getStartLevel(getInitialBundleStartLevel());
+                        }
+                        
                         try
                         {
 // TODO: LAZY - Not sure if this is the best way...
@@ -1088,8 +1093,14 @@
                     else if (((impl.getState() == Bundle.ACTIVE)
                         || (impl.getState() == Bundle.STARTING))
                         && (impl.getStartLevel(getInitialBundleStartLevel())
-                            > getActiveStartLevel()))
+                            > requestedLevel))
                     {
+
+                        if (m_activeStartLevel != impl.getStartLevel(getInitialBundleStartLevel()))
+                        {
+                            m_activeStartLevel = impl.getStartLevel(getInitialBundleStartLevel());
+                        }
+
                         try
                         {
                             stopBundle(impl, false);
@@ -1112,6 +1123,9 @@
                 // is necessary, but it appears to help.
                 bundles[i] = null;
             }
+
+            m_activeStartLevel = requestedLevel;
+
         }
 
         if (getState() == Bundle.ACTIVE)