*** 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