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/11/15 02:41:10 UTC

[james-project] 01/30: JAMES-2704 Solve major performance issue for RandomStoring mailet

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 8440e83176c84e74695d7909289a151a6a870c13
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Nov 6 16:53:40 2019 +0700

    JAMES-2704 Solve major performance issue for RandomStoring mailet
    
    This mailet was unnecessarily list all mailboxes of all users, for each user.
    
    What we should do is listing all mailboxes of a user, for each user.
---
 .../java/org/apache/james/transport/mailets/RandomStoring.java     | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RandomStoring.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RandomStoring.java
index 8115a23..adac9e4 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RandomStoring.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RandomStoring.java
@@ -26,6 +26,7 @@ import java.util.Objects;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.function.Supplier;
 import java.util.stream.Stream;
+
 import javax.inject.Inject;
 import javax.mail.MessagingException;
 
@@ -33,6 +34,7 @@ import org.apache.james.core.MailAddress;
 import org.apache.james.core.Username;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.model.search.MailboxQuery;
 import org.apache.james.transport.mailets.delivery.MailStore;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
@@ -43,6 +45,7 @@ import org.apache.mailet.base.GenericMailet;
 import com.github.steveash.guavate.Guavate;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.Streams;
+
 import reactor.core.publisher.Mono;
 
 /**
@@ -115,9 +118,9 @@ public class RandomStoring extends GenericMailet {
 
             MailboxSession session = mailboxManager.createSystemSession(username.asString());
             return mailboxManager
-                .list(session)
+                .search(MailboxQuery.privateMailboxesBuilder(session).build(), session)
                 .stream()
-                .map(mailboxPath -> new ReroutingInfos(mailAddress, mailboxPath.getName(), username.asString()));
+                .map(metaData -> new ReroutingInfos(mailAddress, metaData.getPath().getName(), username.asString()));
         } catch (Exception e) {
             throw new RuntimeException(e);
         }


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