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 <btell...@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-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org