Author: rickhall
Date: Fri Jun 1 06:47:29 2007
New Revision: 543485
URL: http://svn.apache.org/viewvc?view=rev&rev=543485
Log:
Split the Felix.shutdownInternal() method in two to fix some issues Felix
noticed in the new shutdown routine; splitting the method helped us avoid
some asymmetry.
Modified:
felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java
felix/trunk/framework/src/main/java/org/apache/felix/framework/SystemBundle.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=543485&r1=543484&r2=543485
==============================================================================
--- 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
Fri Jun 1 06:47:29 2007
@@ -567,7 +567,7 @@
* the system bundle, cleaning up any bundle remains and shutting down
event
* dispatching.
*/
- void shutdownInternal()
+ void shutdownInternalStart()
{
synchronized (this)
{
@@ -665,7 +665,10 @@
}
}
}
+ }
+ void shutdownInternalFinish()
+ {
// Notify any waiters that the framework is back in its initial state.
synchronized (this)
{
Modified:
felix/trunk/framework/src/main/java/org/apache/felix/framework/SystemBundle.java
URL:
http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/SystemBundle.java?view=diff&rev=543485&r1=543484&r2=543485
==============================================================================
---
felix/trunk/framework/src/main/java/org/apache/felix/framework/SystemBundle.java
(original)
+++
felix/trunk/framework/src/main/java/org/apache/felix/framework/SystemBundle.java
Fri Jun 1 06:47:29 2007
@@ -356,10 +356,11 @@
public void run()
{
- // First, stop all other bundles.
+ // First, start the framework shutdown, which will
+ // stop all bundles.
try
{
- getFelix().shutdownInternal();
+ getFelix().shutdownInternalStart();
}
catch (Exception ex)
{
@@ -396,6 +397,18 @@
throwable);
}
}
+ }
+
+ // Lastly, complete the shutdown.
+ try
+ {
+ getFelix().shutdownInternalFinish();
+ }
+ catch (Exception ex)
+ {
+ getFelix().getLogger().log(
+ Logger.LOG_ERROR,
+ "SystemBundle: Error while shutting down.", ex);
}
}
}