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]