diff --git a/src/Symfony/Bridge/Doctrine/Messenger/DoctrineOpenTransactionLoggerMiddleware.php b/src/Symfony/Bridge/Doctrine/Messenger/DoctrineOpenTransactionLoggerMiddleware.php index 246f0090e58e..40adcbabae59 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; } } }
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: