The GitHub Actions job "CI" on 
grails-core.git/fix/web-transaction-attribute-copy has failed.
Run started by GitHub user borinquenkid (triggered by borinquenkid).

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

Mirrors the CustomizableRollbackTransactionAttribute fix (4042a87d54)
split out of PR #15779 review, applied to the web-tier twin in
org.grails.transaction.

The RuleBasedTransactionAttribute overload now delegates 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 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 GrailsTransactionAttributeSpec (copy independence and state
preservation for every constructor dispatch path, including statically
dispatched entries).

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

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

With regards,
GitHub Actions via GitBox

Reply via email to