Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Kaegi2008-09-09 20:23:23 +0000
committerSimon Kaegi2008-09-09 20:23:23 +0000
commit26d56e2e183481e7cc0415458cd00003079f4624 (patch)
treed9c25254e5542bea3d4875b8fe24992071e08df0
parentf867b600ee3b48f51351b9591361feba714095e0 (diff)
downloadrt.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.java12
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 {

Back to the top