*** empty log message ***
diff --git a/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/LaunchInfo.java b/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/LaunchInfo.java
index 819d16c..7e9242b 100644
--- a/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/LaunchInfo.java
+++ b/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/LaunchInfo.java
@@ -1226,7 +1226,7 @@
private ArrayList revertToInactive(List curAct, List curInact, List oldAct, List oldInact) {
// start with old inactive list
- ArrayList inactive = (ArrayList)oldInact;
+ ArrayList inactive = new ArrayList(oldInact); // clone
VersionedIdentifier vid;
// add current inactive
@@ -1245,6 +1245,12 @@
}
}
+ // remove all that are active in new state
+ for (int i=0; i<oldAct.size(); i++) {
+ vid = (VersionedIdentifier) oldAct.get(i);
+ inactive.remove(vid);
+ }
+
return inactive;
}
public static Object run(String flag, String value, String location, String[] args) throws Exception {
@@ -1535,11 +1541,11 @@
dir = new File(path);
list = dir.list(dirfilter);
if (DEBUG) debug("Detecting configuration changes");
+ profile.synchConfigurations(list);
VersionedIdentifier[] configDelta;
if (list == null)
configDelta = new VersionedIdentifier[0];
else {
- profile.synchConfigurations(list);
configDelta = profile.computeDelta(list, profile.configs, profile.configsInact, profile.configsPendingDelete);
}
@@ -1548,11 +1554,11 @@
dir = new File(path);
list = dir.list(dirfilter);
if (DEBUG) debug("Detecting component changes");
+ profile.synchComponents(list);
VersionedIdentifier[] compDelta;
if (list == null)
compDelta = new VersionedIdentifier[0];
else {
- profile.synchComponents(list);
compDelta = profile.computeDelta(list, profile.comps, profile.compsInact, profile.compsPendingDelete);
}
@@ -1565,11 +1571,11 @@
dir = new File(path);
list = dir.list(dirfilter);
if (DEBUG) debug("Detecting plugin changes");
+ profile.synchPlugins(list);
VersionedIdentifier[] pluginDelta;
if (list == null)
pluginDelta = new VersionedIdentifier[0];
else {
- profile.synchPlugins(list);
pluginDelta = profile.computeDelta(list, profile.plugins, profile.pluginsInact, profile.pluginsPendingDelete);
}
for (int i=0; i<pluginDelta.length; i++)
@@ -1580,11 +1586,11 @@
dir = new File(path);
list = dir.list(dirfilter);
if (DEBUG) debug("Detecting fragment changes");
+ profile.synchFragments(list);
VersionedIdentifier[] fragmentDelta;
if (list == null)
fragmentDelta = new VersionedIdentifier[0];
else {
- profile.synchFragments(list);
fragmentDelta = profile.computeDelta(list, profile.fragments, profile.fragmentsInact, profile.fragmentsPendingDelete);
}
for (int i=0; i<fragmentDelta.length; i++)
@@ -1684,22 +1690,22 @@
}
private void synchComponents(String[] dirlist) {
- List list = Arrays.asList(dirlist);
+ List list = Arrays.asList(dirlist!=null ? dirlist : new String[0]);
synch(list, comps);
synch(list, compsInact);
synch(list, compsDang);
synch(list, compsPendingDelete);
}
-private void synchConfigurations(String[] dirlist) {
- List list = Arrays.asList(dirlist);
+private void synchConfigurations(String[] dirlist) {
+ List list = Arrays.asList(dirlist!=null ? dirlist : new String[0]);
synch(list, configs);
synch(list, configsInact);
synch(list, configsPendingDelete);
}
private void synchFragments(String[] dirlist) {
- List list = Arrays.asList(dirlist);
+ List list = Arrays.asList(dirlist!=null ? dirlist : new String[0]);
synch(list, fragments);
synch(list, fragmentsInact);
synch(list, fragmentsUnmgd);
@@ -1707,7 +1713,7 @@
}
private void synchPlugins(String[] dirlist) {
- List list = Arrays.asList(dirlist);
+ List list = Arrays.asList(dirlist!=null ? dirlist : new String[0]);
synch(list, plugins);
synch(list, pluginsInact);
synch(list, pluginsUnmgd);
diff --git a/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/update/BootUpdateManager.java b/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/update/BootUpdateManager.java
index 53c8359..7595681 100644
--- a/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/update/BootUpdateManager.java
+++ b/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/update/BootUpdateManager.java
Binary files differ