The GitHub Actions job "CI - Groovy Joint Validation Build" on grails-core.git/feat/gorm-datastore-infra has succeeded. Run started by GitHub user borinquenkid (triggered by borinquenkid).
Head commit for run: 48c9c49a34c9c16f7deebd73c9731dc4eeea19dc / Walter Duque de Estrada <[email protected]> fix: address jdaugherty's follow-up review on SessionResolver/AbstractDatastore Three remaining issues from the re-review of #15779: - ThreadLocalSessionResolver.unbind() called unbindResourceIfPossible(), discarding the whole SessionHolder instead of popping just the top session. bind(A); bind(B); unbind() lost A entirely instead of restoring it, and neither session was closed. unbind() now pops and closes only the top session via the same removeSession()/isEmpty()/closeSessionOrRegisterDeferredClose() path DatastoreUtils.executeWithNewSession already uses, leaving the outer binding intact. The nested-scope test previously asserted the destructive behavior as correct; it now asserts restoration. - AbstractDatastore.hasCurrentSession() read the swappable sessionResolver field, while getCurrentSession() read TSM/SessionHolder directly via DatastoreUtils.doGetSession() - a caller-installed custom resolver could make these two methods disagree. setSessionResolver() had zero callers anywhere in the codebase (confirmed via search), so removed it and made sessionResolver final: both methods are now guaranteed to read the same authoritative state. - addApplicationListener()'s reflective fallback silently logged and swallowed registration failures for a plain ApplicationEventPublisher with no addApplicationListener method, so a caller had no way to know the listener would never fire. It now throws IllegalStateException instead of silently succeeding from the caller's perspective. Every fix has updated Spock coverage. Full grails-datastore-core, grails-datamapping-core, and grails-data-simple suites pass; codeStyle/ CodeNarc clean. Co-Authored-By: Claude Sonnet 5 <[email protected]> Report URL: https://github.com/apache/grails-core/actions/runs/29137799491 With regards, GitHub Actions via GitBox
