You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/03/21 03:10:23 UTC

[james-project] 01/02: MAILBOX-386 Solve sync issue in memory event dead letters

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

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

commit 79e83c37ecb1668db9ec9456ba66d4aa8d05e504
Author: Rene Cordier <rc...@linagora.com>
AuthorDate: Wed Mar 20 15:13:16 2019 +0700

    MAILBOX-386 Solve sync issue in memory event dead letters
---
 .../james/mailbox/events/MemoryEventDeadLetters.java      | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/mailbox/event/event-memory/src/main/java/org/apache/james/mailbox/events/MemoryEventDeadLetters.java b/mailbox/event/event-memory/src/main/java/org/apache/james/mailbox/events/MemoryEventDeadLetters.java
index ed324f2..40d8f86 100644
--- a/mailbox/event/event-memory/src/main/java/org/apache/james/mailbox/events/MemoryEventDeadLetters.java
+++ b/mailbox/event/event-memory/src/main/java/org/apache/james/mailbox/events/MemoryEventDeadLetters.java
@@ -21,11 +21,11 @@ package org.apache.james.mailbox.events;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.HashBasedTable;
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Table;
 
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
-import reactor.core.publisher.MonoProcessor;
 
 public class MemoryEventDeadLetters implements EventDeadLetters {
 
@@ -42,9 +42,8 @@ public class MemoryEventDeadLetters implements EventDeadLetters {
         Preconditions.checkArgument(insertionId != null, FAIL_DELIVERED_ID_INSERTION_CANNOT_BE_NULL);
 
         synchronized (deadLetters) {
-            return Mono.fromRunnable(() -> deadLetters.put(registeredGroup, insertionId, failDeliveredEvent))
-                .subscribeWith(MonoProcessor.create())
-                .then();
+            deadLetters.put(registeredGroup, insertionId, failDeliveredEvent);
+            return Mono.empty();
         }
     }
 
@@ -54,8 +53,8 @@ public class MemoryEventDeadLetters implements EventDeadLetters {
         Preconditions.checkArgument(failDeliveredInsertionId != null, FAIL_DELIVERED_ID_INSERTION_CANNOT_BE_NULL);
 
         synchronized (deadLetters) {
-            return Mono.justOrEmpty(deadLetters.remove(registeredGroup, failDeliveredInsertionId))
-                .then();
+            deadLetters.remove(registeredGroup, failDeliveredInsertionId);
+            return Mono.empty();
         }
     }
 
@@ -74,14 +73,14 @@ public class MemoryEventDeadLetters implements EventDeadLetters {
         Preconditions.checkArgument(registeredGroup != null, REGISTERED_GROUP_CANNOT_BE_NULL);
 
         synchronized (deadLetters) {
-            return Flux.fromIterable(deadLetters.row(registeredGroup).keySet());
+            return Flux.fromIterable(ImmutableList.copyOf(deadLetters.row(registeredGroup).keySet()));
         }
     }
 
     @Override
     public Flux<Group> groupsWithFailedEvents() {
         synchronized (deadLetters) {
-            return Flux.fromIterable(deadLetters.rowKeySet());
+            return Flux.fromIterable(ImmutableList.copyOf(deadLetters.rowKeySet()));
         }
     }
 }


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