jamesfredley commented on PR #15557:
URL: https://github.com/apache/grails-core/pull/15557#issuecomment-4366834020

   @jdaugherty Current state of the upstream tickets for the standalone 
reproducers in https://github.com/jamesfredley/groovy5-compiledynamic-trait-bug:
   
   | Reproducer | Workaround in this PR | Groovy ticket | Status against 
5.0.6-SNAPSHOT build #23 |
   |---|---|---|---|
   | `SmartCastCheck.groovy` | (now removed) | 
[GROOVY-11983](https://issues.apache.org/jira/browse/GROOVY-11983) | **Fixed** 
- committed 2026-05-03 (`65d16eb4` on GROOVY_5_0_X, `af95d66d` on master). Two 
workarounds dropped from this PR in commit 73bd63c5477 (PersistentEntityCodec + 
DefaultHalViewHelper). |
   | `TraitStaticFieldsCheck.groovy` | (already removed in 74da8078b58) | 
[GROOVY-11968](https://issues.apache.org/jira/browse/GROOVY-11968) (follow-up 
to GROOVY-11907) | **Fixed** - committed 2026-04-27 (`46402fb29a`), in build 
#22+. ContainerSupport `@CompileDynamic` workaround dropped. |
   | `InterfaceDefaultsCheck.groovy` | ContainerGebConfiguration 
interface→trait | 
[GROOVY-11982](https://issues.apache.org/jira/browse/GROOVY-11982) | **Fixed in 
master only** - `88ca738c` on `master` 2026-05-02, NOT yet ported to 
`GROOVY_5_0_X`. Workaround stays until backport. |
   | Repo root (`render(Map)` silent no-op) | TemplateRendererImpl + 
GenerateControllerCommand typed positional render | Not yet filed | Reproduces 
on build #23. Will file. |
   | `Slf4jCheck.groovy` | (already removed) | n/a | Reproducer doesn't 
trigger; the workaround was based on a misdiagnosis. |
   | `ConfigObjectCheck.groovy` | (already removed) | n/a | Reproducer doesn't 
trigger; replaced with a smaller `containsKey + readWithoutCreating` change in 
`NavigableMap.resolveConfigMapValue`. |
   
   Outside the standalone reproducer set, two more workarounds in this PR have 
well-defined upstream tickets:
   
   - **TraitPropertyAccessStrategy** - 
[GROOVY-11512](https://issues.apache.org/jira/browse/GROOVY-11512). Filed 
(Status: Open).
   - **VariableScopeVisitor NPE on Grails AST transform output** - not yet 
filed. The trigger is compiling `DataServiceRoutingProductDataService.groovy`; 
the visitor itself didn't change shape, what changed is that some Grails AST 
transforms now produce a node shape the visitor fails on. I'll file this with a 
Grails-side reproducer (the failing `:grails-datamapping-tck:compileGroovy` 
invocation) since I haven't been able to reduce it to a Groovy-only standalone 
yet.
   
   Three more known-real Groovy 5 issues in this PR don't have standalone 
reproducers yet:
   
   - `@CompileStatic` `render(Map<String,Object>)` overload silently no-ops on 
multi-overload interface refs (workaround: typed positional `render(Resource, 
File, Map, boolean)`)
   - Controller action method parameter scope lost under `-PgrailsIndy=false` 
after `ControllerActionTransformer.wrapMethodBodyWithExceptionHandling` 
(workaround: 5 `grails-test-examples` projects keep 
`boot4-disabled-integration-test-config.gradle` applied)
   - `@Builder(builderStrategy = SimpleStrategy)` not recognised under Spring 
6/7 + Groovy 5 in `ConfigurationBuilder` (workaround: Map exclusion ordering + 
`Object.class` fallback)
   
   I'll get standalone reproducers + Groovy tickets filed for these three over 
the next couple of pushes.
   
   PR description has been refreshed - the resolved-and-dropped section now 
includes GROOVY-11983 alongside GROOVY-11907 / GROOVY-11968, and the 
remaining-workaround inventory only lists items that actually still reproduce 
against build #23.
   
   cc @paulk-asert in case the GROOVY-11982 backport to `GROOVY_5_0_X` and a 
GROOVY-11512 nudge would help us drop more of these duct-tape lines.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to