The GitHub Actions job "CI" on grails-core.git/grails8-groovy5-sb4 has 
succeeded.
Run started by GitHub user jamesfredley (triggered by jamesfredley).

Head commit for run:
0804a4fc73146db992c904dd10d078193eafa2e3 / James Fredley 
<[email protected]>
Re-CompileDynamic ContainerSupport: GROOVY-11907 fix incomplete for indy=false

Partially reverts a290b37156. The @CompileStatic restoration on 
ContainerSupport (a trait with static fields) compiled fine but produces 
invalid bytecode at runtime when downstream consumers are compiled with 
grailsIndy=false. The Trait\ static setter helpers come out with mismatched 
local-variable slots that the JVM verifier rejects.

Reproduced locally on Groovy 5.0.6-SNAPSHOT with:

  ./gradlew :grails-test-examples-app2:integrationTest -PgrailsIndy=false 
--rerun-tasks

Failure:

  java.lang.VerifyError: get long/double overflows locals

  Location: 
grails/plugin/geb/support/ContainerSupport\\.setContainer(Ljava/lang/Class;Lorg/testcontainers/containers/BrowserWebDriverContainer;)V
 @0: dload_3

  Reason: Local index 3 is invalid

  Bytecode: 2912 2e32 2a2b b900 3403 0057 b1

  at grails.plugin.geb.ContainerGebSpec.<clinit>(ContainerGebSpec.groovy)

After re-applying @CompileDynamic, the same ./gradlew 
:grails-test-examples-app2:integrationTest -PgrailsIndy=false run is BUILD 
SUCCESSFUL with both ErrorsControllerSpec and NotFoundHandlerSpec PASSED. The 
CommandLineHelper part of a290b37156 is kept (final boolean constants, no 
static-setter bytecode is generated).

Assisted-by: claude-code:claude-opus-4-7

Report URL: https://github.com/apache/grails-core/actions/runs/24943041504

With regards,
GitHub Actions via GitBox

Reply via email to