### Eclipse Workspace Patch 1.0
#P org.eclipse.jdt.core.tests.model
Index: src/org/eclipse/jdt/core/tests/model/AbstractJavaModelTests.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AbstractJavaModelTests.java,v
retrieving revision 1.165.2.2
diff -u -r1.165.2.2 AbstractJavaModelTests.java
--- src/org/eclipse/jdt/core/tests/model/AbstractJavaModelTests.java 2 Jun 2006 14:06:51 -0000 1.165.2.2
+++ src/org/eclipse/jdt/core/tests/model/AbstractJavaModelTests.java 9 Jun 2006 10:57:27 -0000
@@ -568,6 +568,10 @@
}
assertEquals("Unepexeted type parameters", expected, actual);
}
+ protected void assertSortedStringsEqual(String message, String expected, String[] strings) {
+ Util.sort(strings);
+ assertStringsEqual(message, expected, strings);
+ }
protected void assertStringsEqual(String message, String expected, String[] strings) {
String actual = toString(strings, true/*add extra new lines*/);
if (!expected.equals(actual)) {
Index: src/org/eclipse/jdt/core/tests/model/ClasspathTests.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ClasspathTests.java,v
retrieving revision 1.151
diff -u -r1.151 ClasspathTests.java
--- src/org/eclipse/jdt/core/tests/model/ClasspathTests.java 6 Apr 2006 15:25:04 -0000 1.151
+++ src/org/eclipse/jdt/core/tests/model/ClasspathTests.java 9 Jun 2006 10:57:30 -0000
@@ -1976,11 +1976,11 @@
public void testEncodeDecodeEntry02() {
assertEncodeDecodeEntry(
"P",
- "\n" +
+ "\n" +
" \n" +
- " \n" +
+ " \n" +
" \n" +
- "\n",
+ "\n",
JavaCore.newSourceEntry(
new Path("/P/src"),
new IPath[] {new Path("**/Y.java")},
@@ -2005,14 +2005,14 @@
public void testEncodeDecodeEntry04() {
assertEncodeDecodeEntry(
"P",
- "\n" +
+ "\n" +
" \n" +
- " \n" +
+ " \n" +
" \n" +
" \n" +
" \n" +
" \n" +
- "\n",
+ "\n",
JavaCore.newLibraryEntry(
new Path("/P/lib.jar"),
new Path("/P/src.zip"),
@@ -2028,12 +2028,12 @@
public void testEncodeDecodeEntry05() {
assertEncodeDecodeEntry(
"P",
- "\n" +
+ "\n" +
" \n" +
- " \n" +
+ " \n" +
" \n" +
" \n" +
- " \n" +
+ " \n" +
" \n" +
"\n",
JavaCore.newLibraryEntry(
@@ -2182,7 +2182,7 @@
"\n" +
" \n" +
" \n" +
- " \n" +
+ " \n" +
" \n" +
" \n" +
" \n" +
@@ -2209,8 +2209,8 @@
"\n" +
" \n" +
" \n" +
- " \n" +
- " \n" +
+ " \n" +
+ " \n" +
" \n" +
" \n" +
" \n" +
@@ -3653,9 +3653,9 @@
"\n" +
"\n" +
" \n" +
- " \n" +
+ " \n" +
" \n" +
- "\n",
+ "\n",
contents);
} finally {
deleteProject("P");
@@ -3751,17 +3751,17 @@
"\n" +
"\n" +
" \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
" \n" +
"\n",
contents);
Index: src/org/eclipse/jdt/core/tests/model/WorkingCopyOwnerTests.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/WorkingCopyOwnerTests.java,v
retrieving revision 1.56
diff -u -r1.56 WorkingCopyOwnerTests.java
--- src/org/eclipse/jdt/core/tests/model/WorkingCopyOwnerTests.java 2 May 2006 15:01:45 -0000 1.56
+++ src/org/eclipse/jdt/core/tests/model/WorkingCopyOwnerTests.java 9 Jun 2006 10:57:33 -0000
@@ -133,7 +133,7 @@
this.workingCopy = getCompilationUnit("P/Y.java");
this.workingCopy.becomeWorkingCopy(null, null);
- assertElementsEqual(
+ assertSortedElementsEqual(
"Unexpected children of default package",
"X.java [in [in [in P]]]\n" +
"[Working copy] Y.java [in [in [in P]]]",
Index: src/org/eclipse/jdt/core/tests/model/JavaLikeExtensionsTests.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaLikeExtensionsTests.java,v
retrieving revision 1.5
diff -u -r1.5 JavaLikeExtensionsTests.java
--- src/org/eclipse/jdt/core/tests/model/JavaLikeExtensionsTests.java 29 Mar 2006 04:03:07 -0000 1.5
+++ src/org/eclipse/jdt/core/tests/model/JavaLikeExtensionsTests.java 9 Jun 2006 10:57:31 -0000
@@ -47,11 +47,11 @@
* Ensures that the known Java-like extensions are correct.
*/
public void testGetJavaLikeExtensions01() {
- assertStringsEqual(
+ assertSortedStringsEqual(
"Unexpected file extensions",
- "java\n" +
+ "bar\n" +
"foo\n" +
- "bar\n",
+ "java\n",
JavaCore.getJavaLikeExtensions()
);
}
@@ -64,12 +64,12 @@
try {
if (javaContentType != null)
javaContentType.addFileSpec("abc", IContentType.FILE_EXTENSION_SPEC);
- assertStringsEqual(
+ assertSortedStringsEqual(
"Unexpected file extensions",
- "java\n" +
- "foo\n" +
+ "abc\n" +
"bar\n" +
- "abc\n",
+ "foo\n" +
+ "java\n",
JavaCore.getJavaLikeExtensions()
);
} finally {
Index: src/org/eclipse/jdt/core/tests/model/TypeHierarchyTests.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/TypeHierarchyTests.java,v
retrieving revision 1.55.2.1
diff -u -r1.55.2.1 TypeHierarchyTests.java
--- src/org/eclipse/jdt/core/tests/model/TypeHierarchyTests.java 6 Jun 2006 14:41:15 -0000 1.55.2.1
+++ src/org/eclipse/jdt/core/tests/model/TypeHierarchyTests.java 9 Jun 2006 10:57:33 -0000
@@ -540,16 +540,16 @@
"Super types:\n" +
" Object [in Object.class [in java.lang [in "+ getExternalJCLPathString() + " [in TypeHierarchy]]]]\n" +
"Sub types:\n" +
- " Y1 [in foo() [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" +
+ " [in [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" +
" Y2 [in foo() [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" +
+ " [in field1 [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" +
+ " [in field2 [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" +
" [in foo() [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" +
+ " [in [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" +
" [in field2 [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" +
- " [in field2 [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" +
- " [in field1 [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" +
- " [in [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" +
- " Y1 [in [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" +
+ " Y1 [in foo() [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" +
" Y2 [in [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" +
- " [in [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n",
+ " Y1 [in [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n",
hierarchy);
}
/*
@@ -561,10 +561,10 @@
assertHierarchyEquals(
"Focus: X [in X.java [in [in src [in TypeHierarchy15]]]]\n" +
"Super types:\n" +
- " List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
" ArrayList [in ArrayList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
- " List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
+ " List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
" AbstractList [in AbstractList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
+ " List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
" Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in TypeHierarchy15]]]]\n" +
"Sub types:\n",
hierarchy
@@ -579,8 +579,8 @@
assertHierarchyEquals(
"Focus: ArrayList [in ArrayList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
"Super types:\n" +
- " List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
" AbstractList [in AbstractList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
+ " List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
" Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in TypeHierarchy15]]]]\n" +
"Sub types:\n" +
" X [in X.java [in [in src [in TypeHierarchy15]]]]\n" +
@@ -597,10 +597,10 @@
assertHierarchyEquals(
"Focus: Y [in Y.java [in [in src [in TypeHierarchy15]]]]\n" +
"Super types:\n" +
- " List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
" ArrayList [in ArrayList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
- " List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
+ " List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
" AbstractList [in AbstractList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
+ " List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
" Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in TypeHierarchy15]]]]\n" +
"Sub types:\n",
hierarchy
@@ -616,10 +616,10 @@
assertHierarchyEquals(
"Focus: X [in X.java [in [in src [in TypeHierarchy15]]]]\n" +
"Super types:\n" +
- " List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
" ArrayList [in ArrayList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
- " List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
+ " List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
" AbstractList [in AbstractList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
+ " List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" +
" Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in TypeHierarchy15]]]]\n" +
"Sub types:\n",
hierarchy
@@ -1374,18 +1374,18 @@
assertHierarchyEquals(
"Focus: \n" +
"Sub types of root classes:\n" +
- " X [in X.java [in [in [in P1]]]]\n" +
- " Z [in Z.java [in [in [in P3]]]]\n" +
+ " Class [in Class.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n" +
" Y [in Y.java [in [in [in P2]]]]\n" +
- " Throwable [in Throwable.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n" +
- " Exception [in Exception.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n" +
- " RuntimeException [in RuntimeException.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n" +
+ " Z [in Z.java [in [in [in P3]]]]\n" +
+ " String [in String.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n" +
+ " Error [in Error.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n" +
+ " CloneNotSupportedException [in CloneNotSupportedException.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n" +
" IllegalMonitorStateException [in IllegalMonitorStateException.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n" +
" InterruptedException [in InterruptedException.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n" +
- " CloneNotSupportedException [in CloneNotSupportedException.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n" +
- " Error [in Error.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n" +
- " String [in String.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n" +
- " Class [in Class.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n",
+ " RuntimeException [in RuntimeException.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n" +
+ " Exception [in Exception.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n" +
+ " Throwable [in Throwable.class [in java.lang [in "+ getExternalJCLPathString() + " [in P1]]]]\n" +
+ " X [in X.java [in [in [in P1]]]]\n",
hierarchy);
} finally {
deleteProjects(new String[] {"P1", "P2", "P3"});
Index: src/org/eclipse/jdt/core/tests/model/JavaProjectTests.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaProjectTests.java,v
retrieving revision 1.67
diff -u -r1.67 JavaProjectTests.java
--- src/org/eclipse/jdt/core/tests/model/JavaProjectTests.java 4 May 2006 09:33:14 -0000 1.67
+++ src/org/eclipse/jdt/core/tests/model/JavaProjectTests.java 9 Jun 2006 10:57:32 -0000
@@ -238,7 +238,7 @@
createFile("/P/pack/X.java", "package pack; public class X {}");
createFile("/P/pack/Y.bar", "package pack; public class Y {}");
IPackageFragment pkg = getPackage("/P/pack");
- assertElementsEqual(
+ assertSortedElementsEqual(
"Unexpected children of package pack",
"X.java [in pack [in [in P]]]\n" +
"Y.bar [in pack [in [in P]]]",
@@ -1132,33 +1132,34 @@
String containerKey = UserLibraryManager.CP_USERLIBRARY_PREFERENCES_PREFIX+"TEST";
String libraryPreference = instancePreferences.get(containerKey, null);
assertNotNull("Should get a preference for TEST user library", libraryPreference);
- StringBuffer expected = new StringBuffer();
- expected.append("\r\n");
- expected.append("\r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append(" \r\n");
- expected.append("\r\n");
- String expectedString = org.eclipse.jdt.core.tests.util.Util.convertToIndependantLineDelimiter(expected.toString());
- assertEquals("Invalid library contents", expectedString, org.eclipse.jdt.core.tests.util.Util.convertToIndependantLineDelimiter(libraryPreference));
+
+ assertSourceEquals(
+ "Invalid library contents",
+ "\n" +
+ "\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ "\n",
+ libraryPreference);
}
}
#P org.eclipse.jdt.core.tests.compiler
Index: src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java,v
retrieving revision 1.59.2.4
diff -u -r1.59.2.4 BatchCompilerTest.java
--- src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java 30 May 2006 13:34:14 -0000 1.59.2.4
+++ src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java 9 Jun 2006 10:57:36 -0000
@@ -1078,7 +1078,7 @@
String expectedLogContents =
"\n" +
"\n" +
- "\n" +
+ "\n" +
" \n" +
" \n" +
" \n" +
@@ -1170,10 +1170,10 @@
" NORMALIZED SECTION\n" +
" \n" +
" \n" +
" \n" +
" \n" +
- " \n" +
+ " \n" +
" \n" +
"\n";
String normalizedExpectedLogContents =
#P org.eclipse.jdt.core
Index: model/org/eclipse/jdt/internal/core/hierarchy/TypeHierarchy.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/hierarchy/TypeHierarchy.java,v
retrieving revision 1.94
diff -u -r1.94 TypeHierarchy.java
--- model/org/eclipse/jdt/internal/core/hierarchy/TypeHierarchy.java 4 Apr 2006 13:10:36 -0000 1.94
+++ model/org/eclipse/jdt/internal/core/hierarchy/TypeHierarchy.java 9 Jun 2006 10:57:40 -0000
@@ -1471,17 +1471,16 @@
toString(buffer, this.focusType, 1, false);
} else {
buffer.append("Sub types of root classes:\n"); //$NON-NLS-1$
- IType[] roots= getRootClasses();
+ IJavaElement[] roots = Util.sortCopy(getRootClasses());
for (int i= 0; i < roots.length; i++) {
- toString(buffer, roots[i], 1, false);
+ toString(buffer, (IType) roots[i], 1, false);
}
}
if (this.rootClasses.size > 1) {
buffer.append("Root classes:\n"); //$NON-NLS-1$
- IType[] roots = this.getRootClasses();
+ IJavaElement[] roots = Util.sortCopy(getRootClasses());
for (int i = 0, length = roots.length; i < length; i++) {
- IType type = roots[i];
- toString(buffer, type, 1, false);
+ toString(buffer, (IType) roots[i], 1, false);
}
} else if (this.rootClasses.size == 0) {
// see http://bugs.eclipse.org/bugs/show_bug.cgi?id=24691
@@ -1499,11 +1498,12 @@
*/
private void toString(StringBuffer buffer, IType type, int indent, boolean ascendant) {
IType[] types= ascendant ? getSupertypes(type) : getSubtypes(type);
- for (int i= 0; i < types.length; i++) {
+ IJavaElement[] sortedTypes = Util.sortCopy(types);
+ for (int i= 0; i < sortedTypes.length; i++) {
for (int j= 0; j < indent; j++) {
buffer.append(" "); //$NON-NLS-1$
}
- JavaElement element = (JavaElement)types[i];
+ JavaElement element = (JavaElement)sortedTypes[i];
buffer.append(element.toStringWithAncestors(false/*don't show key*/));
buffer.append('\n');
toString(buffer, types[i], indent + 1, ascendant);
Index: batch/org/eclipse/jdt/internal/compiler/batch/Main.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java,v
retrieving revision 1.254.2.1
diff -u -r1.254.2.1 Main.java
--- batch/org/eclipse/jdt/internal/compiler/batch/Main.java 30 May 2006 13:34:28 -0000 1.254.2.1
+++ batch/org/eclipse/jdt/internal/compiler/batch/Main.java 9 Jun 2006 10:57:39 -0000
@@ -28,9 +28,7 @@
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.Date;
-import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
@@ -958,12 +956,15 @@
buffer.append("<"); //$NON-NLS-1$
buffer.append(name);
if (params != null) {
- for (Enumeration enumeration = Collections.enumeration(params.keySet()); enumeration.hasMoreElements();) {
+ int length = parameters.size();
+ String[] keys = new String[length];
+ parameters.keySet().toArray(keys);
+ Arrays.sort(keys);
+ for (int i = 0; i < length; i++) {
buffer.append(" "); //$NON-NLS-1$
- String key= (String) enumeration.nextElement();
- buffer.append(key);
+ buffer.append(keys[i]);
buffer.append("=\""); //$NON-NLS-1$
- buffer.append(getEscaped(String.valueOf(params.get(key))));
+ buffer.append(getEscaped(String.valueOf(params.get(keys[i]))));
buffer.append("\""); //$NON-NLS-1$
}
}
Index: model/org/eclipse/jdt/internal/core/XMLWriter.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/XMLWriter.java,v
retrieving revision 1.8
diff -u -r1.8 XMLWriter.java
--- model/org/eclipse/jdt/internal/core/XMLWriter.java 5 Sep 2005 11:39:01 -0000 1.8
+++ model/org/eclipse/jdt/internal/core/XMLWriter.java 9 Jun 2006 10:57:39 -0000
@@ -11,8 +11,6 @@
package org.eclipse.jdt.internal.core;
import java.io.PrintWriter;
import java.io.Writer;
-import java.util.Collections;
-import java.util.Enumeration;
import java.util.HashMap;
import org.eclipse.jdt.core.IJavaProject;
@@ -80,12 +78,15 @@
sb.append("<"); //$NON-NLS-1$
sb.append(name);
if (parameters != null) {
- for (Enumeration en = Collections.enumeration(parameters.keySet()); en.hasMoreElements();) {
+ int length = parameters.size();
+ String[] keys = new String[length];
+ parameters.keySet().toArray(keys);
+ Util.sort(keys);
+ for (int i = 0; i < length; i++) {
sb.append(" "); //$NON-NLS-1$
- String key= (String) en.nextElement();
- sb.append(key);
+ sb.append(keys[i]);
sb.append("=\""); //$NON-NLS-1$
- sb.append(getEscaped(String.valueOf(parameters.get(key))));
+ sb.append(getEscaped(String.valueOf(parameters.get(keys[i]))));
sb.append("\""); //$NON-NLS-1$
}
}
Index: model/org/eclipse/jdt/internal/core/util/Util.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/Util.java,v
retrieving revision 1.95
diff -u -r1.95 Util.java
--- model/org/eclipse/jdt/internal/core/util/Util.java 26 Apr 2006 14:41:03 -0000 1.95
+++ model/org/eclipse/jdt/internal/core/util/Util.java 9 Jun 2006 10:57:41 -0000
@@ -45,6 +45,7 @@
import org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException;
import org.eclipse.jdt.internal.compiler.parser.ScannerHelper;
import org.eclipse.jdt.internal.compiler.util.SuffixConstants;
+import org.eclipse.jdt.internal.core.JavaElement;
import org.eclipse.jdt.internal.core.JavaModelManager;
import org.eclipse.jdt.internal.core.PackageFragmentRoot;
import org.eclipse.jface.text.BadLocationException;
@@ -1950,6 +1951,23 @@
}
/**
+ * Sorts an array of Java elements based on their toStringWithAncestors(),
+ * returning a new array with the sorted items.
+ * The original array is left untouched.
+ */
+ public static IJavaElement[] sortCopy(IJavaElement[] elements) {
+ int len = elements.length;
+ IJavaElement[] copy = new IJavaElement[len];
+ System.arraycopy(elements, 0, copy, 0, len);
+ sort(copy, new Comparer() {
+ public int compare(Object a, Object b) {
+ return ((JavaElement) a).toStringWithAncestors().compareTo(((JavaElement) b).toStringWithAncestors());
+ }
+ });
+ return copy;
+ }
+
+ /**
* Sorts an array of Strings, returning a new array
* with the sorted items. The original array is left untouched.
*/