@Override public Iterator<UpdatedFlags> updateFlags(Mailbox mailbox, FlagsUpdateCalculator flagsUpdateCalculator, MessageRange set) throws MailboxException { Iterator<MailboxMessage> messages = findInMailbox(mailbox, set, FetchType.Metadata, UNLIMIT_MAX_SIZE); MessageChangedFlags messageChangedFlags = messageMetadataMapper.updateFlags(mailbox, flagsUpdateCalculator, messages); for (MailboxMessage mailboxMessage : messageChangedFlags.getChangedFlags()) { save(mailbox, mailboxMessage); } return messageChangedFlags.getUpdatedFlags(); }