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]

Reply via email to