### Eclipse Workspace Patch 1.0 #P org.eclipse.rse.ui Index: model/org/eclipse/rse/ui/internal/model/SystemRegistry.java =================================================================== RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.ui/model/org/eclipse/rse/ui/internal/model/SystemRegistry.java,v retrieving revision 1.33 diff -u -r1.33 SystemRegistry.java --- model/org/eclipse/rse/ui/internal/model/SystemRegistry.java 23 Jul 2007 15:33:46 -0000 1.33 +++ model/org/eclipse/rse/ui/internal/model/SystemRegistry.java 23 Jul 2007 15:50:28 -0000 @@ -39,7 +39,6 @@ package org.eclipse.rse.ui.internal.model; import java.util.ArrayList; import java.util.Arrays; -import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Vector; @@ -255,29 +254,17 @@ /** * Private method used by RSEUIPlugin to tell registry all registered subsystem - * factories. This way, all code can use this registry to access them versus the - * RSEUIPlugin. + * factories. This way, all code can use this registry to access them versus the + * RSEUIPlugin. + * + * Proxies must be set sorted by priority, then ID in order to get deterministic + * results for all getSubSystemConfiguration*() queries. */ public void setSubSystemConfigurationProxies(ISubSystemConfigurationProxy[] proxies) { - //[165674]: Sort proxies by ID in order to get deterministic results - //on all getSubSystemConfiguration*() queries - ISubSystemConfigurationProxy[] newProxies = (ISubSystemConfigurationProxy[])proxies.clone(); - Arrays.sort(newProxies, new Comparator(){ - public int compare(Object o1, Object o2) { - ISubSystemConfigurationProxy s1 = (ISubSystemConfigurationProxy)o1; - ISubSystemConfigurationProxy s2 = (ISubSystemConfigurationProxy)o2; - if (s1.getPriority() < s2.getPriority()) { - return -1; - } else if (s1.getPriority() > s2.getPriority()) { - return +1; - } - return s1.getId().compareTo(s2.getId()); - } - }); - //for (int idx=0; idx proxy2.getPriority()) { - return 1; + return +1; + } else { + return proxy1.getId().compareTo(proxy2.getId()); } - else { - return 0; - } - } - else { - return 0; } + return 0; } } Index: src/org/eclipse/rse/core/RSECorePlugin.java =================================================================== RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/core/RSECorePlugin.java,v retrieving revision 1.21 diff -u -r1.21 RSECorePlugin.java --- src/org/eclipse/rse/core/RSECorePlugin.java 14 Jun 2007 12:59:10 -0000 1.21 +++ src/org/eclipse/rse/core/RSECorePlugin.java 23 Jul 2007 15:50:28 -0000 @@ -18,13 +18,15 @@ * Martin Oberhuber (Wind River) - [175680] Deprecate obsolete ISystemRegistry methods * Martin Oberhuber (Wind River) - [160293] NPE on startup when only Core feature is installed * Uwe Stieber (Wind River) - [192611] RSE Core plugin may fail to initialize because of cyclic code invocation + * Martin Oberhuber (Wind River) - [165674] Sort subsystem configurations by priority then Id ********************************************************************************/ package org.eclipse.rse.core; import java.net.InetAddress; import java.net.UnknownHostException; +import java.util.ArrayList; import java.util.Arrays; -import java.util.Vector; +import java.util.List; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExtensionRegistry; @@ -282,21 +284,19 @@ IConfigurationElement[] factoryPlugins = getSubSystemConfigurationPlugins(); if (factoryPlugins != null) { - Vector v = new Vector(); + List l = new ArrayList(); for (int idx=0; idx