Author: norman
Date: Sun Oct  9 17:38:18 2011
New Revision: 1180661

URL: http://svn.apache.org/viewvc?rev=1180661&view=rev
Log:
Skip messages in response which were not found in msn<->uid mappings. See 
IMAP-346

Modified:
    
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
    
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StoreProcessor.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=1180661&r1=1180660&r2=1180661&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
 Sun Oct  9 17:38:18 2011
@@ -232,8 +232,18 @@ abstract public class AbstractMailboxPro
             MessageResult mr = it.next();
             final long uid = mr.getUid();
             int msn = selected.msn(uid);
-            if (msn == SelectedMailbox.NO_SUCH_MESSAGE)
-                throw new MailboxException("No message found with uid " + uid);
+            if (msn == SelectedMailbox.NO_SUCH_MESSAGE) {
+                if (session.getLog().isDebugEnabled()) {
+                    if(session.getLog().isDebugEnabled()) {
+                        session.getLog().debug("No message found with uid " + 
uid + " in the uid<->msn mapping for mailbox " + 
selected.getPath().getFullName(mailboxSession.getPathDelimiter()) +" , this may 
be because it was deleted by a concurrent session. So skip it..");
+                        
+                    }
+                    // skip this as it was not found in the mapping
+                    // 
+                    // See IMAP-346
+                    continue;
+                }
+            }
 
             boolean qresyncEnabled = 
EnableProcessor.getEnabledCapabilities(session).contains(ImapConstants.SUPPORTS_QRESYNC);
             boolean condstoreEnabled = 
EnableProcessor.getEnabledCapabilities(session).contains(ImapConstants.SUPPORTS_CONDSTORE);

Modified: 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StoreProcessor.java?rev=1180661&r1=1180660&r2=1180661&view=diff
==============================================================================
--- 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
 (original)
+++ 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
 Sun Oct  9 17:38:18 2011
@@ -277,8 +277,16 @@ public class StoreProcessor extends Abst
                 final long uid = entry.getKey();
                 final int msn = selected.msn(uid);
 
-                if (msn == SelectedMailbox.NO_SUCH_MESSAGE)
-                    throw new MailboxException("No message found with uid " + 
uid);
+                if (msn == SelectedMailbox.NO_SUCH_MESSAGE) {
+                    if(session.getLog().isDebugEnabled()) {
+                        session.getLog().debug("No message found with uid " + 
uid + " in the uid<->msn mapping for mailbox " + 
selected.getPath().getFullName(mailboxSession.getPathDelimiter()) +" , this may 
be because it was deleted by a concurrent session. So skip it..");
+                        
+                    }
+                    // skip this as it was not found in the mapping
+                    // 
+                    // See IMAP-346
+                    continue;
+                }
 
                 final Flags resultFlags = entry.getValue();
                 final Long resultUid;



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

Reply via email to