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

Reply via email to