--- groovy-core-GROOVY_1_8_9/src/main/groovy/lang/ExpandoMetaClass.java 2023-09-26 13:31:23.322875980 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/groovy/lang/ExpandoMetaClass.java 2023-09-26 18:35:02.982905358 +0200 @@ -21,9 +21,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.HashSet; +import java.util.TreeSet; import java.util.Iterator; -import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -279,7 +278,7 @@ final private boolean allowChangesAfterInit; public boolean inRegistry; - private final Set inheritedMetaMethods = new HashSet(); + private final Set inheritedMetaMethods = new TreeSet(); private final Map beanPropertyCache = new ConcurrentHashMap(); private final Map staticBeanPropertyCache = new ConcurrentHashMap(); private final Map expandoMethods = new ConcurrentHashMap(); @@ -291,7 +290,7 @@ private final ConcurrentHashMap expandoSubclassMethods = new ConcurrentHashMap(); private final Map expandoProperties = new ConcurrentHashMap(); private ClosureStaticMetaMethod invokeStaticMethodMethod; - private final Set mixinClasses = new LinkedHashSet(); + private final Set mixinClasses = new TreeSet(); private ExpandoMetaClass(Class theClass, boolean register, boolean allowChangesAfterInit, MetaMethod[] add) { super(GroovySystem.getMetaClassRegistry(), theClass, add); --- 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 16:00:10.274451173 +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 TreeMap(); 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 TreeMap(); if (closureMap != null) { map = closureMap; } --- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/ant/Groovyc.java 2023-09-26 13:31:23.336209403 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/ant/Groovyc.java 2023-09-26 13:31:35.556291444 +0200 @@ -53,11 +53,11 @@ import java.util.Arrays; import java.util.Enumeration; import java.util.Iterator; -import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.StringTokenizer; +import java.util.TreeSet; /** * Compiles Groovy source files. This task can take the following arguments: @@ -127,7 +127,7 @@ private boolean keepStubs; private String scriptBaseClass; - private Set scriptExtensions = new LinkedHashSet(); + private Set scriptExtensions = new TreeSet(); /** * Adds a path for source compilation. @@ -658,7 +658,7 @@ */ protected void resetFileLists() { compileList = new File[0]; - scriptExtensions = new LinkedHashSet(); + scriptExtensions = new TreeSet(); } /** --- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/antlr/AntlrParserPlugin.java 2023-09-26 13:31:23.336209403 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/antlr/AntlrParserPlugin.java 2023-09-26 18:44:07.573225992 +0200 @@ -42,7 +42,7 @@ import java.security.AccessController; import java.security.PrivilegedAction; import java.util.ArrayList; -import java.util.HashSet; +import java.util.TreeSet; import java.util.Iterator; import java.util.LinkedList; import java.util.List; @@ -2573,7 +2573,7 @@ private void checkDuplicateNamedParams(AST elist, List expressionList) { if (expressionList.isEmpty()) return; - Set namedArgumentNames = new HashSet(); + Set namedArgumentNames = new TreeSet(); for (Object expression : expressionList) { MapEntryExpression meExp = (MapEntryExpression) expression; if (meExp.getKeyExpression() instanceof ConstantExpression) { --- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/ast/ModuleNode.java 2023-09-26 13:31:23.339542759 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/ast/ModuleNode.java 2023-09-26 18:45:07.250294772 +0200 @@ -44,10 +44,10 @@ private BlockStatement statementBlock = new BlockStatement(); List classes = new LinkedList(); private List methods = new ArrayList(); - private Map imports = new HashMap(); + private Map imports = new TreeMap(); private List starImports = new ArrayList(); - private Map staticImports = new LinkedHashMap(); - private Map staticStarImports = new LinkedHashMap(); + private Map staticImports = new TreeMap(); + private Map staticStarImports = new TreeMap(); private CompileUnit unit; private PackageNode packageNode; private String description; --- 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 15:48:16.126304739 +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 TreeMap(); + Map genericsSpec = new TreeMap(); // unimplemented abstract methods from interfaces - Map abstractMethods = new HashMap(); - Map allInterfaceMethods = new HashMap(); + Map abstractMethods = new TreeMap(); + 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 TreeMap(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/runtime/ClassExtender.java 2023-09-26 13:31:23.352876182 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/runtime/ClassExtender.java 2023-09-26 18:56:10.658079617 +0200 @@ -17,7 +17,7 @@ import groovy.lang.Closure; -import java.util.HashMap; +import java.util.TreeMap; import java.util.Map; @@ -82,6 +82,6 @@ } protected Map createMap() { - return new HashMap(); + return new TreeMap(); } } --- groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/tools/FileSystemCompiler.java 2023-09-26 13:31:23.359542893 +0200 +++ groovy-core-GROOVY_1_8_9/src/main/org/codehaus/groovy/tools/FileSystemCompiler.java 2023-09-26 13:54:05.625117288 +0200 @@ -246,6 +246,7 @@ if (errors) { return null; } else { + Collections.sort(fileList); return fileList.toArray(new String[fileList.size()]); } }