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

Head commit for run:
7c69251c84302acf9a19773266f185ba9f2a2049 / James Daugherty 
<[email protected]>
fix: honor @NotTransactional opt-out on class-annotated services

TransactionalTransform's hasExcludedAnnotation override was removed
along with its ANNOTATION_NAME_EXCLUDES set in 2926a0f644 (#16066).
That override was the only thing implementing the @NotTransactional
opt-out: the base implementation in AbstractMethodDecoratingTransformation
excludes only @PostConstruct, @PreDestroy, @ControllerMethod and
annotations carrying @GormASTTransformationClass, none of which match
the plain @NotTransactional marker.

As a result a method marked @NotTransactional inside a class annotated
@Transactional, @ReadOnly or @Rollback was still given a $tt__ wrapper
and silently ran with an active transaction, contrary to the documented
contract in the guide and to the behaviour of 7.x.

Restore the override, scoped to the one annotation that is still live;
the legacy grails.transaction.* names in the original set no longer
exist, and method-level @Transactional/@ReadOnly/@Rollback are already
handled by the hasLocalAnnotation override.

TransactionalTransformSpec declared a TransactionalTransformSpecService
fixture modelling this exact contract but no feature method ever
referenced it, which is why the removal went unnoticed. Wire it up and
add coverage for all three class-level annotations, plus assertions in
the gorm and hibernate7 example integration specs, whose existing
@NotTransactional test only checked a return value.

Fixes #16334

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

With regards,
GitHub Actions via GitBox

Reply via email to