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