JAMES-2362 Use messageID based search in ReferenceUpdater

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/01afb64c
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/01afb64c
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/01afb64c

Branch: refs/heads/master
Commit: 01afb64cd56b0171e42ab76664822e4465df3af3
Parents: c9c1250
Author: benwa <btell...@linagora.com>
Authored: Tue Mar 27 09:56:11 2018 +0700
Committer: benwa <btell...@linagora.com>
Committed: Tue Mar 27 15:16:33 2018 +0700

----------------------------------------------------------------------
 .../org/apache/james/jmap/methods/ReferenceUpdater.java     | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/01afb64c/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/ReferenceUpdater.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/ReferenceUpdater.java
 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/ReferenceUpdater.java
index 6fb13ea..2f2248b 100644
--- 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/ReferenceUpdater.java
+++ 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/ReferenceUpdater.java
@@ -36,6 +36,7 @@ import org.apache.james.mailbox.model.FetchGroupImpl;
 import org.apache.james.mailbox.model.Headers;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MessageId;
+import org.apache.james.mailbox.model.MessageResult;
 import org.apache.james.mailbox.model.MessageResult.Header;
 import org.apache.james.mailbox.model.MultimailboxesSearchQuery;
 import org.apache.james.mailbox.model.SearchQuery;
@@ -86,20 +87,20 @@ public class ReferenceUpdater {
 
     private void updateFlag(String messageId, MailboxSession session, Flags 
flag) throws MailboxException {
         int limit = 2;
-        MultimailboxesSearchQuery searchByRFC822MessageId = 
MultimailboxesSearchQuery.from(new 
SearchQuery(SearchQuery.headerContains(RFC2822Headers.MESSAGE_ID, 
messageId))).build();
+        MultimailboxesSearchQuery searchByRFC822MessageId = 
MultimailboxesSearchQuery
+            .from(new SearchQuery(SearchQuery.mimeMessageID(messageId)))
+            .build();
         List<MessageId> references = 
mailboxManager.search(searchByRFC822MessageId, session, limit);
         try {
             MessageId reference = Iterables.getOnlyElement(references);
             List<MailboxId> mailboxIds = 
messageIdManager.getMessages(references, FetchGroupImpl.MINIMAL, 
session).stream()
-                .map(result -> result.getMailboxId())
+                .map(MessageResult::getMailboxId)
                 .collect(Guavate.toImmutableList());
             messageIdManager.setFlags(flag, FlagsUpdateMode.ADD, reference, 
mailboxIds, session);
         } catch (NoSuchElementException e) {
             logger.info("Unable to find a message with this Mime Message Id: " 
+ messageId);
-            return;
         } catch (IllegalArgumentException e) {
             logger.info("Too many messages are matching this Mime Message Id: 
" + messageId);
-            return;
         }
     }
 }


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

Reply via email to