Framework was refreshing bundles incorrectly by stopping a bundle then
refreshing it in one step when it should really be stopping all bundles
in one step then refreshing all bundles in a second step. (FELIX-3153)
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1181180 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/Felix.java b/framework/src/main/java/org/apache/felix/framework/Felix.java
index f1e71f7..3847b51 100644
--- a/framework/src/main/java/org/apache/felix/framework/Felix.java
+++ b/framework/src/main/java/org/apache/felix/framework/Felix.java
@@ -3935,17 +3935,25 @@
helpers.add(new RefreshHelper(b));
}
- // Stop, purge or remove, and reinitialize all bundles first.
+ // Stop all refreshing bundles.
for (RefreshHelper helper : helpers)
{
if (helper != null)
{
helper.stop();
+ }
+ }
+
+ // Refresh or remove all refreshing bundles first.
+ for (RefreshHelper helper : helpers)
+ {
+ if (helper != null)
+ {
helper.refreshOrRemove();
}
}
- // Then restart all bundles that were previously running.
+ // Restart all refreshed bundles that were previously running.
for (RefreshHelper helper : helpers)
{
if (helper != null)