diff options
-rw-r--r-- | bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorUtils.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorUtils.java b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorUtils.java index 9e2ab18f1..c72ef3526 100644 --- a/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorUtils.java +++ b/bundles/org.eclipse.equinox.simpleconfigurator.manipulator/src/org/eclipse/equinox/internal/simpleconfigurator/manipulator/SimpleConfiguratorManipulatorUtils.java @@ -63,7 +63,13 @@ public class SimpleConfiguratorManipulatorUtils { Arrays.sort(simpleInfos, new Comparator() { public int compare(Object o1, Object o2) { if (o1 instanceof BundleInfo && o2 instanceof BundleInfo) { - return ((BundleInfo) o1).getSymbolicName().compareTo(((BundleInfo) o2).getSymbolicName()); + BundleInfo b1 = (BundleInfo) o1; + BundleInfo b2 = (BundleInfo) o2; + int bsnComparison = b1.getSymbolicName().compareTo(b2.getSymbolicName()); + if (bsnComparison != 0) + return bsnComparison; + // prefer latest version, see https://bugs.eclipse.org/363590 + return new Version(b2.getVersion()).compareTo(new Version(b1.getVersion())); } return 0; } |