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 e5a8622fb953d61fe7836102bc6baf6fb6655f39 Author: Benoit Tellier <[email protected]> AuthorDate: Tue Nov 12 15:52:24 2019 +0700 [Refactoring] ListProcessor avoid representing "namespace" info as a mbx --- .../apache/james/imap/processor/ListProcessor.java | 24 ++++++++++------------ 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java index 7170415..717a96b 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java @@ -20,7 +20,6 @@ package org.apache.james.imap.processor; import java.io.Closeable; -import java.util.ArrayList; import java.util.List; import org.apache.james.imap.api.ImapCommand; @@ -41,7 +40,6 @@ import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.MailboxConstants; -import org.apache.james.mailbox.model.MailboxId; import org.apache.james.mailbox.model.MailboxMetaData; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.model.search.MailboxQuery; @@ -88,7 +86,6 @@ public class ListProcessor extends AbstractMailboxProcessor<ListRequest> { try { // Should the namespace section be returned or not? final boolean isRelative; - final List<MailboxMetaData> results; if (mailboxName.length() == 0) { // An empty mailboxName signifies a request for the hierarchy @@ -111,12 +108,13 @@ public class ListProcessor extends AbstractMailboxProcessor<ListRequest> { referenceRoot = ""; isRelative = true; } - // Get the mailbox for the reference name. - MailboxPath rootPath = new MailboxPath(referenceRoot, "", ""); - MailboxId mailboxId = null; - results = new ArrayList<>(1); - results.add(new MailboxMetaData(rootPath, mailboxId, mailboxSession.getPathDelimiter(), - MailboxMetaData.Children.CHILDREN_ALLOWED_BUT_UNKNOWN, MailboxMetaData.Selectability.NOSELECT)); + + responder.respond(createResponse( + MailboxMetaData.Children.CHILDREN_ALLOWED_BUT_UNKNOWN, + MailboxMetaData.Selectability.NOSELECT, + referenceRoot, + mailboxSession.getPathDelimiter(), + MailboxType.OTHER)); } else { // If the mailboxPattern is fully qualified, ignore the // reference name. @@ -136,7 +134,7 @@ public class ListProcessor extends AbstractMailboxProcessor<ListRequest> { basePath = PathConverter.forSession(session).buildFullPath(finalReferencename); } - results = getMailboxManager().search( + List<MailboxMetaData> results = getMailboxManager().search( MailboxQuery.builder() .userAndNamespaceFrom(basePath) .expression(new PrefixedRegex( @@ -144,11 +142,11 @@ public class ListProcessor extends AbstractMailboxProcessor<ListRequest> { ModifiedUtf7.decodeModifiedUTF7(mailboxName), mailboxSession.getPathDelimiter())) .build(), mailboxSession); + for (MailboxMetaData metaData : results) { + processResult(responder, isRelative, metaData, getMailboxType(session, mailboxTyper, metaData.getPath())); + } } - for (MailboxMetaData metaData : results) { - processResult(responder, isRelative, metaData, getMailboxType(session, mailboxTyper, metaData.getPath())); - } okComplete(command, tag, responder); } catch (MailboxException e) { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
