jamesfredley opened a new pull request, #15828:
URL: https://github.com/apache/grails-core/pull/15828

   ## Summary
   
   - Replace `GrailsHttpSession` wrapper monitor synchronization with a private 
`ReentrantLock` so lazy session access no longer pins virtual-thread carrier 
threads on `synchronized (this)`.
   - Static-compile `grails-codecs-core` codec extension helpers and replace 
dynamic self-dispatch with direct helper calls.
   - Preserve existing public Groovy extension method descriptors by keeping 
`Object` return types and the existing `HEXDIGITS` property shape.
   
   ## Why
   
   Grails 8 runs on modern JDKs where virtual-thread friendliness matters in 
hot request paths. `GrailsHttpSession` serialized wrapper access through an 
object monitor, which can pin carrier threads when code blocks inside 
synchronized regions. A private `ReentrantLock` keeps the wrapper's 
serialization behavior without monitor pinning and also protects lazy session 
creation consistently.
   
   The codecs are small but widely used hot-path extension methods. Static 
compilation removes dynamic dispatch overhead inside the codec implementations 
while preserving the public dynamic extension surface that existing compiled 
callers expect.
   
   ## Verification
   
   - `./gradlew :grails-codecs-core:test :grails-web-common:test --tests 
"grails.web.servlet.mvc.GrailsHttpSessionSpec" :grails-codecs-core:codeStyle 
:grails-web-common:codeStyle --rerun-tasks`
   - `./gradlew clean aggregateViolations :grails-test-report:check --continue`
     - Violation reports were clean: Checkstyle, CodeNarc, PMD, SpotBugs.
     - The full gate still hits pre-existing unrelated failures on clean 
`origin/8.0.x`: `grails-validation:compileGroovy`, 
`grails-data-graphql-core:compileGroovy`, and MongoDB/Testcontainers 
environment failures. The two compile failures reproduce in a separate clean 
`origin/8.0.x` worktree.
   
   ## Review
   
   - Review gate passed for diff hash 
`c44c66150eb78763308fec125cd0b86260881a48` with both Oracle and Codex reviewers 
green.
   


-- 
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