[ https://issues.apache.org/jira/browse/GROOVY-11689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17955496#comment-17955496 ]
ASF GitHub Bot commented on GROOVY-11689: ----------------------------------------- daniellansun commented on code in PR #2245: URL: https://github.com/apache/groovy/pull/2245#discussion_r2119123343 ########## src/main/java/org/codehaus/groovy/transform/DelegateASTTransformation.java: ########## @@ -215,7 +220,11 @@ public void visit(final ASTNode[] nodes, final SourceUnit source) { } private static Collection<MethodNode> collectMethods(final ClassNode type) { - List<MethodNode> methods = new java.util.LinkedList<>(getAllMethods(type)); + List<MethodNode> allMethods = new ArrayList<>(getAllMethods(type)); + if (!allMethods.isEmpty()) { + allMethods.sort(Comparator.comparing(MethodNodeUtils::methodDescriptorWithoutReturnType)); + } + List<MethodNode> methods = new java.util.LinkedList<>(allMethods); Review Comment: Why should we create `java.util.LinkedList` instance here? We have a sorted `allMethods` already, maybe we could rename `allMethods` to `methods`. > @Delegate generates random method orders > ---------------------------------------- > > Key: GROOVY-11689 > URL: https://issues.apache.org/jira/browse/GROOVY-11689 > Project: Groovy > Issue Type: Improvement > Reporter: James Daugherty > Priority: Major > > While working on the Grails build reproducibility, I discovered that the > `grails-scaffolding` artifact was not reproducible. This was because the > `@Delegate` method calls getMethods() which we discovered in GROOVY-11674 can > have ordering issues. This ticket is to sort this call to ensure consistent > class file creation. -- This message was sent by Atlassian Jira (v8.20.10#820010)