--- groovy-core-GROOVY_1_8_9/src/main/groovy/lang/MetaClassImpl.java 2023-09-26 13:31:23.326209336 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/groovy/lang/MetaClassImpl.java 2023-09-26 22:32:37.407884437 +0200 @@ -135,7 +135,7 @@ private Index classPropertyIndexForSuper = new MethodIndex(); private final SingleKeyHashMap staticPropertyIndex = new SingleKeyHashMap(); - private final Map listeners = new HashMap(); + private final Map listeners = new TreeMap(); private FastArray constructors; private final List allMethods = new ArrayList(); private boolean initialized; @@ -143,7 +143,7 @@ private final MetaProperty arrayLengthProperty = new MetaArrayLengthProperty(); private static final MetaMethod AMBIGUOUS_LISTENER_METHOD = new DummyMetaMethod(); private static final Object[] EMPTY_ARGUMENTS = {}; - private final Set newGroovyMethodsSet = new HashSet(); + private final Set newGroovyMethodsSet = new LinkedHashSet(); private MetaMethod genericGetMethod; private MetaMethod genericSetMethod; --- groovy-core-GROOVY_1_8_9/src/main/groovy/util/ProxyGenerator.java 2023-09-26 13:31:23.332876047 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/groovy/util/ProxyGenerator.java 2023-09-26 22:14:38.014274779 +0200 @@ -96,7 +96,7 @@ } public GroovyObject instantiateAggregateFromBaseClass(Closure cl, Class clazz) { - Map m = new HashMap(); + Map m = new TreeMap(); m.put("*", cl); return instantiateAggregateFromBaseClass(m, clazz, null); } @@ -132,7 +132,7 @@ } public GroovyObject instantiateAggregate(Map closureMap, List interfaces, Class clazz, Object[] constructorArgs) { - Map map = new HashMap(); + Map map = new LinkedHashMap(); if (closureMap != null) { map = closureMap; } @@ -181,7 +181,7 @@ buffer.append(" }\n"); // add overwriting methods - Map selectedMethods = new HashMap(); + Map selectedMethods = new TreeMap(); List publicAndProtectedMethods = getInheritedMethods(baseClass, new ArrayList()); boolean closureIndicator = map.containsKey("*"); for (Method method : publicAndProtectedMethods) { @@ -269,7 +269,7 @@ } public GroovyObject instantiateDelegateWithBaseClass(Map closureMap, List interfaces, Object delegate, Class baseClass, String name) { - Map map = new HashMap(); + Map map = new LinkedHashMap(); if (closureMap != null) { map = closureMap; } --- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/ast/ClassNode.java 2023-09-26 13:31:23.339542759 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/ast/ClassNode.java 2023-09-26 19:47:32.055269643 +0200 @@ -406,7 +406,7 @@ } public Set getAllInterfaces () { - Set res = new HashSet(); + Set res = new LinkedHashSet(); getAllInterfaces(res); return res; } --- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/ast/VariableScope.java 2023-09-26 13:31:23.339542759 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/ast/VariableScope.java 2023-09-26 20:06:22.392879780 +0200 @@ -16,8 +16,8 @@ package org.codehaus.groovy.ast; import java.util.Collections; -import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.Map; /** @@ -107,18 +107,15 @@ VariableScope copy = new VariableScope(); copy.clazzScope = clazzScope; if (declaredVariables.size() > 0) { - copy.declaredVariables = new HashMap(); - copy.declaredVariables.putAll(declaredVariables); + copy.declaredVariables = new LinkedHashMap(declaredVariables); } copy.inStaticContext = inStaticContext; copy.parent = parent; if (referencedClassVariables.size() > 0) { - copy.referencedClassVariables = new HashMap(); - copy.referencedClassVariables.putAll(referencedClassVariables); + copy.referencedClassVariables = new LinkedHashMap(referencedClassVariables); } if (referencedLocalVariables.size() > 0) { - copy.referencedLocalVariables = new HashMap(); - copy.referencedLocalVariables.putAll(referencedLocalVariables); + copy.referencedLocalVariables = new LinkedHashMap(referencedLocalVariables); } copy.resolvesDynamic = resolvesDynamic; return copy; @@ -126,7 +123,7 @@ public void putDeclaredVariable(Variable var) { if (declaredVariables == Collections.EMPTY_MAP) - declaredVariables = new HashMap(); + declaredVariables = new LinkedHashMap(); declaredVariables.put(var.getName(), var); } @@ -144,13 +141,13 @@ public void putReferencedLocalVariable(Variable var) { if (referencedLocalVariables == Collections.EMPTY_MAP) - referencedLocalVariables = new HashMap(); + referencedLocalVariables = new LinkedHashMap(); referencedLocalVariables.put(var.getName(), var); } public void putReferencedClassVariable(Variable var) { if (referencedClassVariables == Collections.EMPTY_MAP) - referencedClassVariables = new HashMap(); + referencedClassVariables = new LinkedHashMap(); referencedClassVariables.put(var.getName(), var); } --- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/classgen/asm/ClosureWriter.java 2023-09-26 13:31:23.342876115 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/classgen/asm/ClosureWriter.java 2023-09-26 22:27:19.219143281 +0200 @@ -15,7 +15,7 @@ */ package org.codehaus.groovy.classgen.asm; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Iterator; import java.util.List; @@ -54,12 +54,12 @@ protected interface UseExistingReference {} - private HashMap closureClassMap; + private LinkedHashMap closureClassMap; private WriterController controller; public ClosureWriter(WriterController wc) { this.controller = wc; - closureClassMap = new HashMap(); + closureClassMap = new LinkedHashMap(); } public void writeClosure(ClosureExpression expression) { --- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/classgen/asm/MopWriter.java 2023-09-26 13:31:23.342876115 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/classgen/asm/MopWriter.java 2023-09-26 22:29:22.783273049 +0200 @@ -16,7 +16,7 @@ package org.codehaus.groovy.classgen.asm; import java.lang.reflect.Modifier; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; @@ -78,7 +78,7 @@ * @see #generateMopCalls(LinkedList, boolean) */ private void visitMopMethodList(List methods, boolean isThis) { - HashMap mops = new HashMap(); + LinkedHashMap mops = new LinkedHashMap(); LinkedList mopCalls = new LinkedList(); for (Object method : methods) { MethodNode mn = (MethodNode) method; --- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/classgen/Verifier.java 2023-09-26 13:31:23.342876115 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/classgen/Verifier.java 2023-09-26 22:31:15.637347467 +0200 @@ -139,7 +139,7 @@ for (ClassNode classNode : classNodes) { interfaces.add(classNode.getName()); } - Set interfaceSet = new HashSet(interfaces); + Set interfaceSet = new TreeSet(interfaces); if (interfaceSet.size() != interfaces.size()) { throw new RuntimeParserException("Duplicate interfaces in implements list: " + interfaces, classNode); } @@ -832,7 +832,7 @@ List staticStatements = new ArrayList(); final boolean isEnum = node.isEnum(); List initStmtsAfterEnumValuesInit = new ArrayList(); - Set explicitStaticPropsInEnum = new HashSet(); + Set explicitStaticPropsInEnum = new TreeSet(); if (isEnum) { for (PropertyNode propNode : node.getProperties()) { if (!propNode.isSynthetic() && propNode.getField().isStatic()) { @@ -1051,12 +1051,12 @@ } protected void addCovariantMethods(ClassNode classNode) { - Map methodsToAdd = new HashMap(); - Map genericsSpec = new HashMap(); + Map methodsToAdd = new LinkedHashMap(); + Map genericsSpec = new LinkedHashMap(); // unimplemented abstract methods from interfaces - Map abstractMethods = new HashMap(); - Map allInterfaceMethods = new HashMap(); + Map abstractMethods = new LinkedHashMap(); + Map allInterfaceMethods = new TreeMap(); ClassNode[] interfaces = classNode.getInterfaces(); for (ClassNode iface : interfaces) { Map ifaceMethodsMap = iface.getDeclaredMethodsMap(); @@ -1086,7 +1086,7 @@ addCovariantMethods(classNode, declaredMethods, abstractMethods, methodsToAdd, genericsSpec); - Map declaredMethodsMap = new HashMap(); + Map declaredMethodsMap = new TreeMap(); if (methodsToAdd.size() > 0) { for (MethodNode mn : declaredMethods) { declaredMethodsMap.put(mn.getTypeDescriptor(), mn); @@ -1336,7 +1336,7 @@ } private Map createGenericsSpec(ClassNode current, Map oldSpec) { - Map ret = new HashMap(oldSpec); + Map ret = new LinkedHashMap(oldSpec); // ret contains the type specs, what we now need is the type spec for the // current class. To get that we first apply the type parameters to the // current class and then use the type names of the current class to reset --- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/transform/ASTTransformationVisitor.java 2023-09-26 13:31:23.362876249 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/transform/ASTTransformationVisitor.java 2023-09-26 19:55:46.378599493 +0200 @@ -59,7 +59,7 @@ private Map> transforms; private Map, ASTTransformation> transformInstances; private static CompilationUnit compUnit; - private static Set globalTransformNames = new HashSet(); + private static Set globalTransformNames = new LinkedHashSet(); private ASTTransformationVisitor(CompilePhase phase) { this.phase = phase; --- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/transform/CategoryASTTransformation.java 2023-09-26 13:31:23.362876249 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/transform/CategoryASTTransformation.java 2023-09-26 19:55:31.251830932 +0200 @@ -31,7 +31,7 @@ import groovy.lang.Reference; import java.util.Arrays; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Set; @@ -71,7 +71,7 @@ ClassNode targetClass = getTargetClass(source, annotation); final LinkedList> varStack = new LinkedList>(); - Set names = new HashSet(); + Set names = new LinkedHashSet(); for (FieldNode field : parent.getFields()) { names.add(field.getName()); } @@ -83,7 +83,7 @@ } private void addVariablesToStack(Parameter[] params) { - Set names = new HashSet(); + Set names = new LinkedHashSet(); names.addAll(varStack.getLast()); for (Parameter param : params) { names.add(param.getName()); @@ -107,7 +107,7 @@ @Override public void visitBlockStatement(BlockStatement block) { - Set names = new HashSet(); + Set names = new LinkedHashSet(); names.addAll(varStack.getLast()); varStack.add(names); super.visitBlockStatement(block); --- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/transform/DelegateASTTransformation.java 2023-09-26 13:31:23.362876249 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/transform/DelegateASTTransformation.java 2023-09-26 19:51:23.170159705 +0200 @@ -34,7 +34,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -111,7 +111,7 @@ } private Set getInterfacesAndSuperInterfaces(ClassNode type) { - Set res = new HashSet(); + Set res = new LinkedHashSet(); if (type.isInterface()) { res.add(type); return res;