The GitHub Actions job "Code Style" on grails-core.git/grails8-groovy5-sb4 has succeeded. Run started by GitHub user jamesfredley (triggered by jamesfredley).
Head commit for run: db381c1ac6c2e4ab251b646cdc1b42e7ed1f2a8a / James Fredley <[email protected]> fix: drop ConfigurationBuilder @Builder-detection workaround (GROOVY-12040 backported to GROOVY_5_0_X) GROOVY-12040 (apache/groovy#2565) restores @Builder to @Retention(RUNTIME) and is now backported to GROOVY_5_0_X. Confirmed against the published 5.0.7-SNAPSHOT build 5.0.7-20260529.064309-2, whose groovy.transform.builder.Builder again carries RUNTIME retention (the prior cached build dated 2026-05-22 still had SOURCE). The isLikelyBuilderType() heuristic was introduced only because Class.getAnnotation(Builder) returned null under the SOURCE-retention regression. With runtime annotation detection working again, the heuristic and its three call-site disjuncts are removed and builder detection reverts to the pre-Groovy-5 getAnnotation(Builder) form. The Spring 7 Map-to-typed-config conversion fallbacks (handleConverterNotFoundException, handleConversionException) are retained; they are independent of the Groovy version. While auditing the remainder of the former combined row, the AbstractConstraint.getDefaultMessage fallback was confirmed to be a genuinely required, SEPARATE Groovy 5 bug (not GROOVY-12040): on Groovy 5 the ConstrainedProperty interface constant DEFAULT_MESSAGES is initialised with null values (its map initialiser runs before the DEFAULT_*_MESSAGE constants it references are assigned), so a direct DEFAULT_MESSAGES.get(code) returns null while MESSAGE_BUNDLE resolves the same code correctly. The MESSAGE_BUNDLE fallback is kept, its comment corrected to describe the real root cause, and a new reproducer/regression test (DefaultMessageResolutionSpec) is added to guard it. Verified on 5.0.7-SNAPSHOT (5.0.7-20260529.064309-2) / JDK 21: :grails-datastore-core:test --tests *ConfigurationBuilder* -> 9/9 passed :grails-datamapping-validation:test -> all passed, incl new DefaultMessageResolutionSpec :grails-datastore-core:codeStyle and :grails-datamapping-validation:codeStyle -> green Assisted-by: claude-code:claude-4.8-opus Report URL: https://github.com/apache/grails-core/actions/runs/26647524637 With regards, GitHub Actions via GitBox
