Author: norman
Date: Sun Apr 10 19:55:24 2011
New Revision: 1090878
URL: http://svn.apache.org/viewvc?rev=1090878&view=rev
Log:
Correctly handle sequence-sets when using SEARCH. See IMAP-292
Modified:
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
Modified:
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/SearchProcessor.java?rev=1090878&r1=1090877&r2=1090878&view=diff
==============================================================================
---
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
(original)
+++
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
Sun Apr 10 19:55:24 2011
@@ -182,14 +182,23 @@ public class SearchProcessor extends Abs
case SearchKey.TYPE_SEEN:
return SearchQuery.flagIsSet(Flag.SEEN);
case SearchKey.TYPE_SENTBEFORE:
- return SearchQuery.headerDateBefore(ImapConstants.RFC822_DATE,
+
+ // Include the date which is used as search param. See IMAP-293
+ Criterion beforeC =
SearchQuery.headerDateBefore(ImapConstants.RFC822_DATE,
date.getDay(), date.getMonth(), date.getYear());
+ Criterion onC =
SearchQuery.headerDateBefore(ImapConstants.RFC822_DATE,
+ date.getDay(), date.getMonth(), date.getYear());
+ return SearchQuery.or(beforeC, onC);
+
case SearchKey.TYPE_SENTON:
return SearchQuery.headerDateOn(ImapConstants.RFC822_DATE, date
.getDay(), date.getMonth(), date.getYear());
case SearchKey.TYPE_SENTSINCE:
- return SearchQuery.headerDateAfter(ImapConstants.RFC822_DATE,
+ // Include the date which is used as search param. See IMAP-293
+ Criterion onCrit =
SearchQuery.headerDateOn(ImapConstants.RFC822_DATE, date.getDay(),
date.getMonth(), date.getYear());
+ Criterion afterCrit =
SearchQuery.headerDateAfter(ImapConstants.RFC822_DATE,
date.getDay(), date.getMonth(), date.getYear());
+ return SearchQuery.or(onCrit, afterCrit);
case SearchKey.TYPE_SEQUENCE_SET:
return sequence(key.getSequenceNumbers(), session, true);
case SearchKey.TYPE_SINCE:
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]