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/05/02 10:44:51 UTC
svn commit: r1098511 - in
/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor:
AbstractSelectionProcessor.java StoreProcessor.java
base/MailboxEventAnalyser.java
Author: norman
Date: Mon May 2 08:44:50 2011
New Revision: 1098511
URL: http://svn.apache.org/viewvc?rev=1098511&view=rev
Log:
Send FLAGS / PERMANENTFLAGS responses for new flags/keywords even if FLAGS.SILENT was used. See IMAP-303
Modified:
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/MailboxEventAnalyser.java
Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java?rev=1098511&r1=1098510&r2=1098511&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java Mon May 2 08:44:50 2011
@@ -188,6 +188,11 @@ abstract class AbstractSelectionProcesso
applicableFlags.add(mr.getFlags());
uids.add(mr.getUid());
}
+
+
+ // \RECENT is not a applicable flag in imap so remove it from the list
+ applicableFlags.remove(Flags.Flag.RECENT);
+
final SelectedMailbox sessionMailbox = new SelectedMailboxImpl(getMailboxManager(), uids.iterator(),applicableFlags, session, path);
session.selected(sessionMailbox);
return sessionMailbox;
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=1098511&r1=1098510&r2=1098511&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 Mon May 2 08:44:50 2011
@@ -76,16 +76,16 @@ public class StoreProcessor extends Abst
if (messageSet != null) {
final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session);
final Map<Long, Flags> flagsByUid = mailbox.setFlags(flags, value, replace, messageSet, mailboxSession);
-
+ // As the STORE command is allowed to create a new "flag/keyword", we need to send a FLAGS and PERMANENTFLAGS response before the FETCH response
+ // if some new flag/keyword was used
+ // See IMAP-303
+ if (selected.hasNewApplicableFlags()) {
+ flags(responder, selected);
+ permanentFlags(responder, mailbox.getMetaData(false, mailboxSession, FetchGroup.NO_COUNT), selected);
+ }
+
if (!silent) {
- // As the STORE command is allowed to create a new "flag/keyword", we need to send a FLAGS and PERMANENTFLAGS response before the FETCH response
- // if some new flag/keyword was used
- // See IMAP-303
- if (selected.hasNewApplicableFlags()) {
- flags(responder, selected);
- permanentFlags(responder, mailbox.getMetaData(false, mailboxSession, FetchGroup.NO_COUNT), selected);
- selected.resetNewApplicableFlags();
- }
+
for (Map.Entry<Long, Flags> entry : flagsByUid.entrySet()) {
final long uid = entry.getKey();
final int msn = selected.msn(uid);
@@ -111,6 +111,7 @@ public class StoreProcessor extends Abst
}
}
}
+
}
final boolean omitExpunged = (!useUids);
Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/MailboxEventAnalyser.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/MailboxEventAnalyser.java?rev=1098511&r1=1098510&r2=1098511&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/MailboxEventAnalyser.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/MailboxEventAnalyser.java Mon May 2 08:44:50 2011
@@ -149,10 +149,12 @@ public class MailboxEventAnalyser extend
for (int i = 0; i < flags.size(); i++) {
applicableFlags.add(flags.get(i).getNewFlags());
-
- // \RECENT is not a applicable flag in imap so remove it from the list
- applicableFlags.remove(Flags.Flag.RECENT);
+
}
+
+ // \RECENT is not a applicable flag in imap so remove it from the list
+ applicableFlags.remove(Flags.Flag.RECENT);
+
if (size < applicableFlags.getSystemFlags().length) {
applicableFlagsChanged = true;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org