The GitHub Actions job "Coverage" on 
grails-core.git/fix/customizable-rollback-tx-attribute-copy has failed.
Run started by GitHub user borinquenkid (triggered by borinquenkid).

Head commit for run:
4042a87d543fd3002055155237cb33a2a9caba18 / Walter Duque de Estrada 
<[email protected]>
fix: preserve full transaction attribute state in 
CustomizableRollbackTransactionAttribute copy constructors

The RuleBasedTransactionAttribute and CustomizableRollbackTransactionAttribute
overloads now delegate to Spring's own copy constructor (super(other)),
which snapshots the rule list from the field without invoking the
source's lazy getRollbackRules() (which would mutate the source by
assigning a new list into it). The TransactionDefinition and
TransactionAttribute overloads recover the dynamic type and snapshot
rules through a temporary Spring copy, so the source is never mutated
on any path.

All paths now explicitly carry the attribute-level state that
Spring 7's DefaultTransactionAttribute copy constructor does not:
descriptor, timeoutString, qualifier, and labels (defensively copied,
since setLabels stores the given reference), plus connection and
inheritRollbackOnly.

Also fixes GString-style placeholders ("$ex", "$winner") in trace
logging that never interpolated in this .java source, and guards the
remaining trace call behind isTraceEnabled().

Covered by CustomizableRollbackTransactionAttributeSpec (copy
independence and state preservation for every constructor dispatch
path) and TransactionRollbackRulePropagationSpec (behavior through
GrailsTransactionTemplate and DefaultTransactionService, verifying
NoRollbackRuleAttribute rules survive the conversion).

Split out of the GormRegistry consolidation per review on #15779.

Co-Authored-By: Claude Fable 5 <[email protected]>

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

With regards,
GitHub Actions via GitBox

Reply via email to