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 1bb233be776e4f047108d3336bab738662ebdea0
Author: Benoit Tellier <[email protected]>
AuthorDate: Tue May 5 09:09:24 2020 +0700

    JAMES-3149 Reactify PreDeletion hooks running
---
 .../apache/james/mailbox/store/StoreMessageManager.java    | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
index 8708344..090f488 100644
--- 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
+++ 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
@@ -679,19 +679,17 @@ public class StoreMessageManager implements 
MessageManager {
 
     }
 
-    private void runPredeletionHooks(List<MessageUid> uids, MailboxSession 
session) throws MailboxException {
+    private void runPredeletionHooks(List<MessageUid> uids, MailboxSession 
session) {
         MessageMapper messageMapper = mapperFactory.getMessageMapper(session);
 
-        DeleteOperation deleteOperation = 
Flux.fromIterable(MessageRange.toRanges(uids))
+        Mono<DeleteOperation> deleteOperation = 
Flux.fromIterable(MessageRange.toRanges(uids))
             .publishOn(Schedulers.elastic())
-            .flatMap(range -> Mono.fromCallable(() -> 
messageMapper.findInMailbox(mailbox, range, FetchType.Metadata, UNLIMITED))
-                .flatMapMany(iterator -> 
Flux.fromStream(Iterators.toStream(iterator))))
+            .flatMap(range -> messageMapper.findInMailboxReactive(mailbox, 
range, FetchType.Metadata, UNLIMITED))
             .map(mailboxMessage -> 
MetadataWithMailboxId.from(mailboxMessage.metaData(), 
mailboxMessage.getMailboxId()))
             .collect(Guavate.toImmutableList())
-            .map(DeleteOperation::from)
-            .block();
+            .map(DeleteOperation::from);
 
-        preDeletionHooks.runHooks(deleteOperation).block();
+        deleteOperation.flatMap(preDeletionHooks::runHooks).block();
     }
 
     @Override
@@ -851,7 +849,7 @@ public class StoreMessageManager implements MessageManager {
         final MessageMapper messageMapper = 
mapperFactory.getMessageMapper(session);
 
         return messageMapper.execute(
-            () -> 
Iterators.toStream(messageMapper.listAllMessageUids(mailbox)));
+            () -> messageMapper.listAllMessageUids(mailbox).toStream());
     }
 
     @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to