/** * Find the highest mod-sequence number in the given {@link MessageRange}'s. * * @param session * @param mailbox * @param ranges * @param currentHighest * @return highestModSeq * @throws MailboxException */ private Long findHighestModSeq(MailboxSession session, MessageManager mailbox, List<MessageRange> ranges, long currentHighest) throws MailboxException { Long highestModSeq = null; // Reverse loop over the ranges as its more likely that we find a match at the end int size = ranges.size(); for (int i = size - 1; i > 0; i--) { MessageResultIterator results = mailbox.getMessages(ranges.get(i), FetchGroupImpl.MINIMAL, session); while (results.hasNext()) { long modSeq = results.next().getModSeq(); if (highestModSeq == null || modSeq > highestModSeq) { highestModSeq = modSeq; } if (highestModSeq == currentHighest) { return highestModSeq; } } } return highestModSeq; }
/** * Find the highest mod-sequence number in the given {@link MessageRange}'s. * * @param session * @param mailbox * @param ranges * @param currentHighest * @return highestModSeq * @throws MailboxException */ private Long findHighestModSeq(final MailboxSession session, MessageManager mailbox, List<MessageRange> ranges, final long currentHighest) throws MailboxException { Long highestModSeq = null; // Reverse loop over the ranges as its more likely that we find a match at the end int size = ranges.size(); for (int i = size -1 ; i > 0; i--) { MessageResultIterator results = mailbox.getMessages(ranges.get(i), FetchGroupImpl.MINIMAL, session); while(results.hasNext()) { long modSeq = results.next().getModSeq(); if (highestModSeq == null || modSeq > highestModSeq) { highestModSeq = modSeq; } if (highestModSeq == currentHighest) { return highestModSeq; } } } return highestModSeq; }
public static Builder builderFromMessageResult(MessageResult messageResult) throws MailboxException { Builder builder = builder() .uid(messageResult.getUid()) .modSeq(messageResult.getModSeq()) .size(messageResult.getSize()) .internalDate(messageResult.getInternalDate().toInstant()) .attachments(messageResult.getAttachments()) .mailboxId(messageResult.getMailboxId()); try { return builder.content(messageResult.getFullContent().getInputStream()); } catch (IOException e) { throw new MailboxException("Can't get message full content: " + e.getMessage(), e); } }
MessageResult r = results.next(); modSeqs.put(r.getUid(),r.getModSeq());
if (!fail && r.getModSeq() <= unchangedSince) { uids.add(uid); } else {
MessageResult r = results.next(); modSeqs.put(r.getUid(),r.getModSeq());
response = new FetchResponse(msn, flags, uidOut, mr.getModSeq(), null, null, null, null, null, null); } else { response = new FetchResponse(msn, flags, uidOut, null, null, null, null, null, null, null);
response = new FetchResponse(msn, flags, uidOut, mr.getModSeq(), null, null, null, null, null, null); } else { response = new FetchResponse(msn, flags, uidOut, null, null, null, null, null, null, null);
if (fetch.isModSeq() && result.getModSeq() <= fetch.getChangedSince()) { continue;
if (!fail && r.getModSeq() <= unchangedSince) { uids.add(uid); } else {