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 2007/07/23 19:03:40 UTC

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

Author: rickhall
Date: Mon Jul 23 10:03:39 2007
New Revision: 558798

URL: http://svn.apache.org/viewvc?view=rev&rev=558798
Log:
A bug slipped into the framework shutdown process during the refactoring
of the code. A "synchronized (this)" was put into an inner class, but
not converted to "synchronized (Felix.this)" which was causing threads
calling Felix.stopAndWait() to not get notified that the framework had
shutdown.

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?view=diff&rev=558798&r1=558797&r2=558798
==============================================================================
--- 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 Mon Jul 23 10:03:39 2007
@@ -1904,9 +1904,9 @@
 
         try
         {
-            if (bundle.getInfo().getActivator() != null)
+            if (info.getActivator() != null)
             {
-                m_secureAction.stopActivator(info.getActivator(),info.getBundleContext());
+                m_secureAction.stopActivator(info.getActivator(), info.getBundleContext());
             }
 
             // Try to save the activator in the cache.
@@ -3816,7 +3816,7 @@
         {
             // First, start the framework shutdown, which will
             // stop all bundles.
-            synchronized (this)
+            synchronized (Felix.this)
             {
                 // Change framework state from active to stopping.
                 // If framework is not active, then just return.
@@ -3946,10 +3946,10 @@
             }
 
             // Notify any waiters that the framework is back in its initial state.
-            synchronized (this)
+            synchronized (Felix.this)
             {
                 m_systemBundleInfo.setState(Bundle.UNINSTALLED);
-                notifyAll();
+                Felix.this.notifyAll();
             }
 
             // Finally shutdown the JVM if the framework is running stand-alone.