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

Reply via email to