JAMES-1951 optimize expunge on SelectedMailboxImpl
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c090b751 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c090b751 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c090b751 Branch: refs/heads/master Commit: c090b751c97934a077e13c6046aa4f080c46e228 Parents: d356b48 Author: Luc DUZAN <ldu...@linagora.com> Authored: Tue Feb 28 16:42:16 2017 +0100 Committer: Antoine Duprat <adup...@linagora.com> Committed: Fri Jun 9 21:56:01 2017 +0200 ---------------------------------------------------------------------- .../apache/james/imap/processor/base/SelectedMailboxImpl.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/c090b751/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java index 70ef72c..e93ac53 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java @@ -76,7 +76,7 @@ public class SelectedMailboxImpl implements SelectedMailbox, MailboxListener{ private final Flags applicableFlags; private boolean applicableFlagsChanged; - + private final SortedMap<Integer, MessageUid> msnToUid =new TreeMap<Integer, MessageUid>(); private final SortedMap<MessageUid, Integer> uidToMsn = new TreeMap<MessageUid, Integer>(); @@ -133,9 +133,8 @@ public class SelectedMailboxImpl implements SelectedMailbox, MailboxListener{ private void expunge(MessageUid uid) { final int msn = msn(uid); remove(msn, uid); - final List<Integer> renumberMsns = new ArrayList<Integer>(msnToUid.tailMap(msn + 1).keySet()); - for (Integer msnInteger : renumberMsns) { - int aMsn = msnInteger.intValue(); + + for (int aMsn = msn + 1; aMsn <= msnToUid.size() + 1; aMsn++) { Optional<MessageUid> aUid = uid(aMsn); if (aUid.isPresent()) { remove(aMsn, aUid.get()); --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org