You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2022/08/18 02:01:36 UTC

[james-project] 02/02: JAMES-3801 Nack errors upon dequeue

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch 3.7.x
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit a3ce06fa198fbe4066f29195135ba8c231bed88d
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Aug 10 11:05:21 2022 +0700

    JAMES-3801 Nack errors upon dequeue
    
    (cherry picked from commit 574196b1b10cd177497cc221110edd148e924a96)
---
 .../src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java    | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java
index dfd784718d..92c549d23a 100644
--- a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java
+++ b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java
@@ -120,7 +120,12 @@ class Dequeuer {
 
     private Mono<RabbitMQMailQueueItem> loadItem(AcknowledgableDelivery response) {
         return loadMail(response)
-            .map(mailWithEnqueueId -> new RabbitMQMailQueueItem(ack(response, mailWithEnqueueId), mailWithEnqueueId));
+            .map(mailWithEnqueueId -> new RabbitMQMailQueueItem(ack(response, mailWithEnqueueId), mailWithEnqueueId))
+            .onErrorResume(e -> {
+                LOGGER.error("Failed to load email, requeue corresponding message", e);
+                response.nack(REQUEUE);
+                return Mono.empty();
+            });
     }
 
     private ThrowingConsumer<Boolean> ack(AcknowledgableDelivery response, MailWithEnqueueId mailWithEnqueueId) {


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org