diff options
author | Simon Kaegi | 2008-09-09 20:23:23 +0000 |
---|---|---|
committer | Simon Kaegi | 2008-09-09 20:23:23 +0000 |
commit | 26d56e2e183481e7cc0415458cd00003079f4624 (patch) | |
tree | d9c25254e5542bea3d4875b8fe24992071e08df0 | |
parent | f867b600ee3b48f51351b9591361feba714095e0 (diff) | |
download | rt.equinox.p2-26d56e2e183481e7cc0415458cd00003079f4624.tar.gz rt.equinox.p2-26d56e2e183481e7cc0415458cd00003079f4624.tar.xz rt.equinox.p2-26d56e2e183481e7cc0415458cd00003079f4624.zip |
Bug 246310 Shared-mode reconciliation is sensitive to repository caches search order
-rw-r--r-- | bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java index ce3f9e25f..efd593361 100644 --- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java +++ b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java @@ -17,6 +17,7 @@ import java.util.Map.Entry; import org.eclipse.core.runtime.*; import org.eclipse.equinox.internal.p2.core.helpers.LogHelper; import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; +import org.eclipse.equinox.internal.p2.extensionlocation.Constants; import org.eclipse.equinox.internal.provisional.configurator.Configurator; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepository; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IFileArtifactRepository; @@ -218,7 +219,16 @@ public class ProfileSynchronizer { StringBuffer buffer = new StringBuffer(); List repositories = new ArrayList(repositoryMap.keySet()); - Collections.sort(repositories); + final String OSGiInstallArea = Activator.getOSGiInstallArea().toExternalForm() + Constants.EXTENSION_LOCATION; + Collections.sort(repositories, new Comparator() { + public int compare(Object left, Object right) { + if (OSGiInstallArea.equals(left)) + return -1; + if (OSGiInstallArea.equals(right)) + return 1; + return ((String) left).compareTo((String) right); + } + }); for (Iterator it = repositories.iterator(); it.hasNext();) { String repositoryId = (String) it.next(); try { |