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

Reply via email to