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/08/22 15:59:40 UTC

[james-project] 02/04: [BUILD] MemoryMailQueue ordering has a 1ms granularity

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

commit 2b76c1579099319da470de2990c598be27006265
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Aug 15 15:52:57 2022 +0700

    [BUILD] MemoryMailQueue ordering has a 1ms granularity
    
    Enqueuing items too fast means we have a small probability of breaking the ordering.
    
    Alternative: Using a tickable clock but it might be invasive.
---
 .../test/java/org/apache/james/queue/api/MailQueueContract.java    | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueContract.java b/server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueContract.java
index 7888221f29..e237d5ea3d 100644
--- a/server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueContract.java
+++ b/server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueContract.java
@@ -34,7 +34,6 @@ import java.time.Duration;
 import java.util.Date;
 import java.util.EnumSet;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Objects;
 import java.util.concurrent.ConcurrentLinkedDeque;
 import java.util.concurrent.LinkedBlockingDeque;
@@ -425,9 +424,11 @@ public interface MailQueueContract {
         enQueue(defaultMail()
             .name("name1")
             .build());
+        Thread.sleep(1);
         enQueue(defaultMail()
             .name("name2")
             .build());
+        Thread.sleep(1);
         enQueue(defaultMail()
             .name("name3")
             .build());
@@ -439,9 +440,11 @@ public interface MailQueueContract {
         mailQueueItem1.done(false);
         MailQueue.MailQueueItem mailQueueItem1bis = items.next();
         MailQueue.MailQueueItem mailQueueItem3 = items.next();
+
         assertThat(mailQueueItem1.getMail().getName()).isEqualTo("name1");
         assertThat(mailQueueItem2.getMail().getName()).isEqualTo("name2");
-        assertThat(List.of(mailQueueItem1bis, mailQueueItem3).stream().map(item -> item.getMail().getName())).containsOnly("name1", "name3");
+        assertThat(Stream.of(mailQueueItem1bis, mailQueueItem3).map(item -> item.getMail().getName()))
+            .containsOnly("name1", "name3");
     }
 
     @Test


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