From fa661b53d8b8ed9a6bb0e065b02d1f159b9bc99d Mon Sep 17 00:00:00 2001 From: "Roland Franssen :)" Date: Mon, 16 Oct 2023 15:31:00 +0200 Subject: [PATCH] [Messenger] Fix DoctrineOpenTransactionLoggerMiddleware --- .../DoctrineOpenTransactionLoggerMiddleware.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Symfony/Bridge/Doctrine/Messenger/DoctrineOpenTransactionLoggerMiddleware.php b/src/Symfony/Bridge/Doctrine/Messenger/DoctrineOpenTransactionLoggerMiddleware.php index 246f0090e58ef..40adcbabae59f 100644 --- a/src/Symfony/Bridge/Doctrine/Messenger/DoctrineOpenTransactionLoggerMiddleware.php +++ b/src/Symfony/Bridge/Doctrine/Messenger/DoctrineOpenTransactionLoggerMiddleware.php @@ -26,6 +26,8 @@ class DoctrineOpenTransactionLoggerMiddleware extends AbstractDoctrineMiddleware { private $logger; + /** @var bool */ + private $isHandling = false; public function __construct(ManagerRegistry $managerRegistry, string $entityManagerName = null, LoggerInterface $logger = null) { @@ -36,6 +38,12 @@ public function __construct(ManagerRegistry $managerRegistry, string $entityMana protected function handleForManager(EntityManagerInterface $entityManager, Envelope $envelope, StackInterface $stack): Envelope { + if ($this->isHandling) { + return $stack->next()->handle($envelope, $stack); + } + + $this->isHandling = true; + try { return $stack->next()->handle($envelope, $stack); } finally { @@ -44,6 +52,7 @@ protected function handleForManager(EntityManagerInterface $entityManager, Envel 'message' => $envelope->getMessage(), ]); } + $this->isHandling = false; } } }