Fix regression triggered by Bug 349326 - [1.7] new warning for missing try-with-resources
Due to eager super-resolving we might get called back into getMemberType while the array is being sorted,
=> need to perform sorting on a copy!
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/Sorting.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/Sorting.java
index 063fd77..deefe5e 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/Sorting.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/Sorting.java
@@ -41,9 +41,10 @@
public static void sortMemberTypes(SourceTypeBinding enclosing) {
int len = enclosing.memberTypes.length;
- ReferenceBinding[] unsorted = enclosing.memberTypes;
-
+ ReferenceBinding[] unsorted = new ReferenceBinding[len];
ReferenceBinding[] sorted = new ReferenceBinding[len];
+ System.arraycopy(enclosing.memberTypes, 0, unsorted, 0, len);
+
int o = 0;
for(int i=0; i<len; i++)
o = sort(enclosing, unsorted, i, sorted, o);