Author: norman
Date: Sat Jun 11 11:52:52 2011
New Revision: 1134574

URL: http://svn.apache.org/viewvc?rev=1134574&view=rev
Log:
Return tagged BAD if a client tries to set/unset the recent flag via the STORE 
command. See IMAP-316

Modified:
    
james/imap/trunk/api/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
    
james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/DecoderUtils.java

Modified: 
james/imap/trunk/api/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/api/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java?rev=1134574&r1=1134573&r2=1134574&view=diff
==============================================================================
--- 
james/imap/trunk/api/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
 (original)
+++ 
james/imap/trunk/api/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
 Sat Jun 11 11:52:52 2011
@@ -61,6 +61,8 @@ public class HumanReadableText {
     public static final HumanReadableText INVALID_MESSAGESET = new 
HumanReadableText("org.apache.james.imap.INVALID_MESSAGESET", "failed. Invalid 
messageset.");
 
     public static final HumanReadableText INVALID_COMMAND = new 
HumanReadableText("org.apache.james.imap.INVALID_COMMAND", "failed. Command not 
valid in this state.");
+   
+    public static final HumanReadableText INVALID_SYSTEM_FLAG = new 
HumanReadableText("org.apache.james.imap.INVALID_SYSTEM_FLAG", "Invalid system 
flag \\RECENT.");
 
     public static final HumanReadableText ILLEGAL_TAG = new 
HumanReadableText("org.apache.james.imap.ILLEGAL_TAG", "Illegal tag.");
 

Modified: 
james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/DecoderUtils.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/DecoderUtils.java?rev=1134574&r1=1134573&r2=1134574&view=diff
==============================================================================
--- 
james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/DecoderUtils.java
 (original)
+++ 
james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/DecoderUtils.java
 Sat Jun 11 11:52:52 2011
@@ -63,7 +63,7 @@ public final class DecoderUtils {
 
     private static final int ALL_MONTH_BITS = JAN_BIT | FEB_BIT | MAR_BIT | 
APR_BIT | MAY_BIT | JUN_BIT | JUL_BIT | AUG_BIT | SEP_BIT | OCT_BIT | NOV_BIT | 
DEC_BIT;
 
-    public static void setFlag(final String flagString, final Flags flags) {
+    public static void setFlag(final String flagString, final Flags flags) 
throws DecodingException{
         if (flagString.equalsIgnoreCase(MessageFlags.ANSWERED_ALL_CAPS)) {
             flags.add(Flags.Flag.ANSWERED);
         } else if (flagString.equalsIgnoreCase(MessageFlags.DELETED_ALL_CAPS)) 
{
@@ -78,8 +78,11 @@ public final class DecoderUtils {
             if (flagString.equalsIgnoreCase(MessageFlags.RECENT_ALL_CAPS)) { 
// NOPMD
                                                                              
// keep
                                                                              
// comment
-                // RFC3501 specifically excludes /Recent
-                // The /Recent flag should be set automatically by the server
+                // RFC3501 specifically excludes \Recent
+                // The \Recent flag should be set automatically by the server 
so throw Exception
+                //
+                // See IMAP-316
+                throw new 
DecodingException(HumanReadableText.INVALID_SYSTEM_FLAG, "\\Recent flag is now 
allowed to set.");
             } else {
                 // RFC3501 allows novel flags
                 flags.add(flagString);



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to