You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2011/10/09 19:38:18 UTC
svn commit: r1180661 - in
/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor:
AbstractMailboxProcessor.java StoreProcessor.java
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org