From 05ec18d55063eeaed058638b3a40c5b92de745da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernhard=20M=C3=BCller?= Date: Tue, 21 Jul 2026 11:42:52 +0200 Subject: [PATCH] fix(mako): use @EventListener instead of @TransactionalEventListener The MakoConsensListener was not being triggered because the event was published from a ScheduledExecutorService thread without transaction context. Changed to @EventListener @Transactional to fix this. --- .../event/listener/MakoConsensListener.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/eeg_backend/src/main/java/at/mueller/eeg/backend/community/event/listener/MakoConsensListener.java b/eeg_backend/src/main/java/at/mueller/eeg/backend/community/event/listener/MakoConsensListener.java index 9aa1981..e12a3e6 100644 --- a/eeg_backend/src/main/java/at/mueller/eeg/backend/community/event/listener/MakoConsensListener.java +++ b/eeg_backend/src/main/java/at/mueller/eeg/backend/community/event/listener/MakoConsensListener.java @@ -10,9 +10,9 @@ import at.mueller.eeg.backend.community.repository.MeteringPointRepository; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.context.ApplicationEventPublisher; +import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; -import org.springframework.transaction.event.TransactionPhase; -import org.springframework.transaction.event.TransactionalEventListener; +import org.springframework.transaction.annotation.Transactional; @Component @RequiredArgsConstructor @@ -22,7 +22,8 @@ public class MakoConsensListener { private final MeteringPointRepository meteringPointRepository; private final ApplicationEventPublisher eventPublisher; - @TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT) + @EventListener + @Transactional public void handleMakoConsensApproved(MakoConsensApprovedEvent event) { log.info("MaKo-Consent erteilt für AT-Nummer: {}", event.atNumber()); @@ -46,7 +47,8 @@ public class MakoConsensListener { }, () -> log.error("Zählpunkt mit AT-Nummer {} nicht gefunden.", event.atNumber())); } - @TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT) + @EventListener + @Transactional public void handleMakoConsensRejected(MakoConsensRejectedEvent event) { log.info("MaKo-Consent abgelehnt für AT-Nummer: {}. Grund: {}", event.atNumber(), event.reason()); @@ -63,7 +65,8 @@ public class MakoConsensListener { }, () -> log.error("Zählpunkt mit AT-Nummer {} nicht gefunden.", event.atNumber())); } - @TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT) + @EventListener + @Transactional public void handleMakoConsensTechnicalFailed(MakoConsensTechnicalFailedEvent event) { log.warn("MaKo-Consent technischer Fehler für AT-Nummer: {}. Grund: {}", event.atNumber(), event.reason());