Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2006-11-15 18:10:58 +0000
committerThomas Watson2006-11-15 18:10:58 +0000
commit53a442da9be1ce60d1443e1b3d23b44e547eeb6d (patch)
tree42e950fc44ab9120000af50bf24d7b775958023b
parent4cabfd14740017f033c3509f59f967bb6c0aa231 (diff)
downloadrt.equinox.framework-53a442da9be1ce60d1443e1b3d23b44e547eeb6d.tar.gz
rt.equinox.framework-53a442da9be1ce60d1443e1b3d23b44e547eeb6d.tar.xz
rt.equinox.framework-53a442da9be1ce60d1443e1b3d23b44e547eeb6d.zip
Bug 138422 Resolver should favour packages from the JRE over the ones coming from bundles
-rw-r--r--bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/VersionHashMap.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/VersionHashMap.java b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/VersionHashMap.java
index bbf5ff693..7e457f8a4 100644
--- a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/VersionHashMap.java
+++ b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/VersionHashMap.java
@@ -11,8 +11,10 @@
package org.eclipse.osgi.internal.module;
import java.util.*;
+import org.eclipse.osgi.framework.internal.core.Constants;
public class VersionHashMap extends MappedList implements Comparator {
+ private final String systemBundle = Constants.getInternalSymbolicName();
private ResolverImpl resolver;
public VersionHashMap(ResolverImpl resolver) {
@@ -101,6 +103,10 @@ public class VersionHashMap extends MappedList implements Comparator {
// if the selection policy is set then use that
if (resolver.getSelectionPolicy() != null)
return resolver.getSelectionPolicy().compare(vs1.getBaseDescription(), vs2.getBaseDescription());
+ if (systemBundle.equals(vs1.getBundle().getSymbolicName()) && !systemBundle.equals(vs2.getBundle().getSymbolicName()))
+ return -1;
+ else if (!systemBundle.equals(vs1.getBundle().getSymbolicName()) && systemBundle.equals(vs2.getBundle().getSymbolicName()))
+ return 1;
if (vs1.getBundle().isResolved() != vs2.getBundle().isResolved())
return vs1.getBundle().isResolved() ? -1 : 1;
int versionCompare = -(vs1.getVersion().compareTo(vs2.getVersion()));

Back to the top