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 caaf58b06afc5c6652351e9c0bf4a0cade63f75f
Author: Benoit Tellier <[email protected]>
AuthorDate: Thu May 30 09:56:34 2019 +0700

    JAMES-2761 Avoid uneeded mailbox path resolution upon unsolicited responses
    
    Unsolicited responses are generated for each command, and were retrieving 
mailbox details twice
     - One time when retrieving details of the selected mailbox
     - One time when retrieving the mailbox from the mailboxPath
    
    Also this closes an inconsistency window upon mailbox renames.
---
 .../org/apache/james/imap/processor/AbstractMailboxProcessor.java   | 4 ++--
 .../java/org/apache/james/imap/processor/SearchProcessorTest.java   | 6 +++++-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
index 731a3ac..fa43bb7 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
@@ -307,7 +307,7 @@ public abstract class AbstractMailboxProcessor<M extends 
ImapRequest> extends Ab
     
     private MessageManager getMailbox(ImapSession session, SelectedMailbox 
selected) throws MailboxException {
         final MailboxManager mailboxManager = getMailboxManager();
-        return mailboxManager.getMailbox(selected.getPath(), 
ImapSessionUtils.getMailboxSession(session));
+        return mailboxManager.getMailbox(selected.getMailboxId(), 
ImapSessionUtils.getMailboxSession(session));
     }
 
     private void addRecentResponses(SelectedMailbox selected, 
ImapProcessor.Responder responder) {
@@ -416,7 +416,7 @@ public abstract class AbstractMailboxProcessor<M extends 
ImapRequest> extends Ab
             result = null;
         } else {
             final MailboxManager mailboxManager = getMailboxManager();
-            result = mailboxManager.getMailbox(selectedMailbox.getPath(), 
ImapSessionUtils.getMailboxSession(session));
+            result = mailboxManager.getMailbox(selectedMailbox.getMailboxId(), 
ImapSessionUtils.getMailboxSession(session));
         }
         return result;
     }
diff --git 
a/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java
 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java
index 532a79a..b3d4911 100644
--- 
a/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java
+++ 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java
@@ -58,11 +58,13 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MailboxSessionUtil;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageUid;
+import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.SearchQuery;
 import org.apache.james.mailbox.model.SearchQuery.AddressType;
 import org.apache.james.mailbox.model.SearchQuery.Criterion;
 import org.apache.james.mailbox.model.SearchQuery.DateResolution;
+import org.apache.james.mailbox.model.TestId;
 import org.apache.james.metrics.api.NoopMetricFactory;
 import org.junit.After;
 import org.junit.Before;
@@ -100,6 +102,7 @@ public class SearchProcessorTest {
             new SearchQuery.UidRange(MessageUid.of(42), MessageUid.of(1048)) };
     
     private static final MailboxPath mailboxPath = new 
MailboxPath("namespace", "user", "name");
+    private static final MailboxId mailboxId = TestId.of(18);
 
     SearchProcessor processor;
     ImapProcessor next;
@@ -125,6 +128,7 @@ public class SearchProcessorTest {
         mailboxManager = mock(MailboxManager.class);
         mailboxSession = MailboxSessionUtil.create("user");
         selectedMailbox = mock(SelectedMailbox.class);
+        when(selectedMailbox.getMailboxId()).thenReturn(mailboxId);
         
         processor = new SearchProcessor(next,  mailboxManager, 
serverResponseFactory, new NoopMetricFactory());
         expectOk();
@@ -192,7 +196,7 @@ public class SearchProcessorTest {
 
     @SuppressWarnings("unchecked")
     private void expectsGetSelectedMailbox() throws Exception {
-        when(mailboxManager.getMailbox(mailboxPath, 
mailboxSession)).thenReturn(mailbox, mailbox);
+        when(mailboxManager.getMailbox(mailboxId, 
mailboxSession)).thenReturn(mailbox, mailbox);
         when(session.getSelected()).thenReturn(selectedMailbox);
         when(selectedMailbox.isRecentUidRemoved()).thenReturn(false);
         when(selectedMailbox.isSizeChanged()).thenReturn(false);


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

Reply via email to