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: [email protected]
For additional commands, e-mail: [email protected]