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/30 07:57:23 UTC

svn commit: r1128999 - /james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java

Author: norman
Date: Mon May 30 05:57:23 2011
New Revision: 1128999

URL: http://svn.apache.org/viewvc?rev=1128999&view=rev
Log:
Make sure ESEARCH options get parsed in the right way. See IMAP-308

Modified:
    james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java

Modified: james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java?rev=1128999&r1=1128998&r2=1128999&view=diff
==============================================================================
--- james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java (original)
+++ james/imap/trunk/message/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java Mon May 30 05:57:23 2011
@@ -896,9 +896,12 @@ public class SearchCommandParser extends
         }
     }
 
+    /**
+     * Parse the {@link SearchResultOption}'s which are used for ESEARCH
+     */
     private List<SearchResultOption> parseOptions(ImapRequestLineReader reader) throws DecodingException {
         List<SearchResultOption> options = new ArrayList<SearchResultOption>();
-        nextIs(reader, '(', '(');
+        reader.consumeChar('(');
         reader.nextWordChar();
         
         int cap = consumeAndCap(reader);
@@ -909,7 +912,7 @@ public class SearchCommandParser extends
                 nextIsL(reader);
                 nextIsL(reader);
                 options.add(SearchResultOption.ALL);
-
+                break;
             case 'C':
                 nextIsO(reader);
                 nextIsU(reader);
@@ -925,12 +928,13 @@ public class SearchCommandParser extends
                     options.add(SearchResultOption.MAX);
                     break;
                 case 'I':
-                    nextIsM(reader);
+                    nextIsN(reader);
                     options.add(SearchResultOption.MIN);
                     break;
                 default:
                     throw new DecodingException(HumanReadableText.ILLEGAL_ARGUMENTS, "Unknown search key");
                 }
+                break;
             default:
                 throw new DecodingException(HumanReadableText.ILLEGAL_ARGUMENTS, "Unknown search key");
             }
@@ -973,7 +977,10 @@ public class SearchCommandParser extends
                     nextIsU(request);
                     nextIsR(request);
                     nextIsN(request);
+                    request.nextWordChar();
                     options = parseOptions(request);
+                    break;
+
                 default:
                     throw new DecodingException(HumanReadableText.ILLEGAL_ARGUMENTS, "Unknown search key");
                 }



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