- <?php
- /*
-  * This file is part of the Symfony package.
-  *
-  * (c) Fabien Potencier <fabien@symfony.com>
-  *
-  * For the full copyright and license information, please view the LICENSE
-  * file that was distributed with this source code.
-  */
- namespace Symfony\Component\Messenger\EventListener;
- use Symfony\Component\EventDispatcher\EventSubscriberInterface;
- use Symfony\Component\Messenger\Event\WorkerMessageFailedEvent;
- use Symfony\Component\Messenger\Stamp\ErrorDetailsStamp;
- final class AddErrorDetailsStampListener implements EventSubscriberInterface
- {
-     public function onMessageFailed(WorkerMessageFailedEvent $event): void
-     {
-         $stamp = ErrorDetailsStamp::create($event->getThrowable());
-         $previousStamp = $event->getEnvelope()->last(ErrorDetailsStamp::class);
-         // Do not append duplicate information
-         if (null === $previousStamp || !$previousStamp->equals($stamp)) {
-             $event->addStamps($stamp);
-         }
-     }
-     public static function getSubscribedEvents(): array
-     {
-         return [
-             // must have higher priority than SendFailedMessageForRetryListener
-             WorkerMessageFailedEvent::class => ['onMessageFailed', 200],
-         ];
-     }
- }
-