Author: norman
Date: Sat Apr  9 16:54:30 2011
New Revision: 1090627

URL: http://svn.apache.org/viewvc?rev=1090627&view=rev
Log:
EXPUNGE responses are lost if multiple sessions are open and a 
FETCH/STORE/SEARCH command is triggered. See IMAP-286

Modified:
    
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java

Modified: 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java?rev=1090627&r1=1090626&r2=1090627&view=diff
==============================================================================
--- 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
 (original)
+++ 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
 Sat Apr  9 16:54:30 2011
@@ -126,22 +126,25 @@ abstract public class AbstractMailboxPro
             final SelectedMailbox selected, boolean omitExpunged, boolean 
useUid) {
         final boolean sizeChanged = selected.isSizeChanged();
         // New message response
-            if (sizeChanged) {
-                addExistsResponses(session, selected, responder);
-            }
-            // Expunged messages
-            if (!omitExpunged) {
-                addExpungedResponses(selected, responder);
-            }
-            if (sizeChanged || (selected.isRecentUidRemoved() && 
!omitExpunged)) {
-                addRecentResponses(selected, responder);
-                selected.resetRecentUidRemoved();
-            }
+        if (sizeChanged) {
+            addExistsResponses(session, selected, responder);
+        }
+        // Expunged messages
+        if (!omitExpunged) {
+            addExpungedResponses(selected, responder);
+        }
+        if (sizeChanged || (selected.isRecentUidRemoved() && !omitExpunged)) {
+            addRecentResponses(selected, responder);
+            selected.resetRecentUidRemoved();
+        }
     
-            // Message updates
-            addFlagsResponses(session, selected, responder, useUid);
+        // Message updates
+        addFlagsResponses(session, selected, responder, useUid);
     
+        // Only reset the events if we send the EXPUNGE responses. See IMAP-286
+        if (!omitExpunged) {
             selected.resetEvents();
+        }
     }
 
     private void addExpungedResponses(final SelectedMailbox selected, final 
ImapProcessor.Responder responder) {



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to