You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2022/12/28 02:00:06 UTC

[james-project] branch master updated: JAMES-3754 Date searching should align IMAP4rev2 specifications (#1360)

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git


The following commit(s) were added to refs/heads/master by this push:
     new 352352ef48 JAMES-3754 Date searching should align IMAP4rev2 specifications (#1360)
352352ef48 is described below

commit 352352ef48c86bedd271f9876f192111b38345ed
Author: Trần Hồng Quân <55...@users.noreply.github.com>
AuthorDate: Wed Dec 28 09:00:00 2022 +0700

    JAMES-3754 Date searching should align IMAP4rev2 specifications (#1360)
    
    Focus on: BEFORE, ON, SINCE and same others
    https://www.rfc-editor.org/rfc/rfc9051.html#name-search-command
---
 .../apache/james/mailbox/opensearch/query/CriterionConverter.java | 6 +++---
 .../mailbox/store/search/AbstractMessageSearchIndexTest.java      | 8 ++++----
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/query/CriterionConverter.java b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/query/CriterionConverter.java
index 04a3771987..7513fda265 100644
--- a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/query/CriterionConverter.java
+++ b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/query/CriterionConverter.java
@@ -304,11 +304,11 @@ public class CriterionConverter {
     private QueryBuilder convertDateOperator(String field, SearchQuery.DateComparator dateComparator, String lowDateString, String upDateString) {
         switch (dateComparator) {
         case BEFORE:
-            return rangeQuery(field).lte(upDateString);
+            return rangeQuery(field).lt(lowDateString); // less than start of the current day
         case AFTER:
-            return rangeQuery(field).gt(lowDateString);
+            return rangeQuery(field).gte(upDateString); // start of next day + greater than that
         case ON:
-            return rangeQuery(field).lte(upDateString).gte(lowDateString);
+            return rangeQuery(field).lt(upDateString).gte(lowDateString);
         }
         throw new RuntimeException("Unknown date operator");
     }
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
index feb618ad3e..740f741349 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
@@ -856,7 +856,7 @@ public abstract class AbstractMessageSearchIndexTest {
         // Date : 2014/07/02 00:00:00.000 ( Paris time zone )
 
         assertThat(messageSearchIndex.search(session, mailbox, searchQuery).toStream())
-            .containsOnly(m7.getUid(), m8.getUid(), m9.getUid());
+            .containsOnly(m8.getUid(), m9.getUid());
     }
 
     @Test
@@ -867,7 +867,7 @@ public abstract class AbstractMessageSearchIndexTest {
         // Date : 2014/02/02 00:00:00.000 ( Paris time zone )
 
         assertThat(messageSearchIndex.search(session, mailbox, searchQuery).toStream())
-            .containsOnly(m1.getUid(), m2.getUid());
+            .containsOnly(m1.getUid());
     }
 
     @Test
@@ -889,7 +889,7 @@ public abstract class AbstractMessageSearchIndexTest {
         // Date : 2014/07/02 00:00:00.000 ( Paris time zone )
 
         assertThat(messageSearchIndex.search(session, mailbox, searchQuery).toStream())
-            .containsOnly(m7.getUid(), m8.getUid(), m9.getUid());
+            .containsOnly(m8.getUid(), m9.getUid());
     }
 
     @Test
@@ -900,7 +900,7 @@ public abstract class AbstractMessageSearchIndexTest {
         // Date : 2014/02/02 00:00:00.000 ( Paris time zone )
 
         assertThat(messageSearchIndex.search(session, mailbox, searchQuery).toStream())
-            .containsOnly(m1.getUid(), m2.getUid());
+            .containsOnly(m1.getUid());
     }
 
     @Test


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