Use extracted attributes instead of annotation access

See gh-31034

(cherry picked from commit d781f299c0)
This commit is contained in:
Juergen Hoeller
2023-08-12 11:34:25 +02:00
parent bb46b31925
commit 2b48254268

View File

@@ -48,10 +48,10 @@ import org.springframework.util.Assert;
public class TransactionalApplicationListenerMethodAdapter extends ApplicationListenerMethodAdapter
implements TransactionalApplicationListener<ApplicationEvent> {
private final TransactionalEventListener annotation;
private final TransactionPhase transactionPhase;
private final boolean fallbackExecution;
private final List<SynchronizationCallback> callbacks = new CopyOnWriteArrayList<>();
@@ -68,8 +68,8 @@ public class TransactionalApplicationListenerMethodAdapter extends ApplicationLi
if (eventAnn == null) {
throw new IllegalStateException("No TransactionalEventListener annotation found on method: " + method);
}
this.annotation = eventAnn;
this.transactionPhase = eventAnn.phase();
this.fallbackExecution = eventAnn.fallbackExecution();
}
@@ -92,8 +92,8 @@ public class TransactionalApplicationListenerMethodAdapter extends ApplicationLi
TransactionSynchronizationManager.registerSynchronization(
new TransactionalApplicationListenerSynchronization<>(event, this, this.callbacks));
}
else if (this.annotation.fallbackExecution()) {
if (this.annotation.phase() == TransactionPhase.AFTER_ROLLBACK && logger.isWarnEnabled()) {
else if (this.fallbackExecution) {
if (getTransactionPhase() == TransactionPhase.AFTER_ROLLBACK && logger.isWarnEnabled()) {
logger.warn("Processing " + event + " as a fallback execution on AFTER_ROLLBACK phase");
}
processEvent(event);