Repository: james-project
Updated Branches:
  refs/heads/master 8049cde24 -> 0395ee41b


MAILBOX-267 enforce modseq uniqueness

        It's not really possible to enforce modseq are monotonic,
        the only thing we can do is enforce uniqueness


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/267f9c38
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/267f9c38
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/267f9c38

Branch: refs/heads/master
Commit: 267f9c38e0cbd547561ebc2a7ec69f7d41fdfd49
Parents: 84be5d7
Author: Matthieu Baechler <[email protected]>
Authored: Tue Apr 19 15:04:49 2016 +0200
Committer: Matthieu Baechler <[email protected]>
Committed: Mon May 2 10:24:47 2016 +0200

----------------------------------------------------------------------
 .../mail/CassandraUidAndModSeqProviderTest.java   | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/267f9c38/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidAndModSeqProviderTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidAndModSeqProviderTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidAndModSeqProviderTest.java
index 6d094c4..d62d05e 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidAndModSeqProviderTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidAndModSeqProviderTest.java
@@ -23,7 +23,6 @@ import static org.junit.Assert.assertEquals;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.concurrent.atomic.AtomicLong;
 import java.util.stream.LongStream;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
@@ -161,18 +160,15 @@ public class CassandraUidAndModSeqProviderTest {
     }
 
     @Test
-    public void nextModSeqShouldIncrementValueWhenParallelCalls() throws 
Exception {
+    public void nextModSeqShouldGenerateUniqueValuesWhenParallelCalls() throws 
Exception {
         SimpleMailbox<CassandraId> mailbox = 
mailboxList.get(mailboxList.size() / 2);
-        long lastUid = modSeqProvider.highestModSeq(null, mailbox);
-        final AtomicLong previousValue = new AtomicLong();
-        LongStream.range(lastUid + 1, lastUid + 10)
+        int nbEntries = 1000;
+        long nbValues = LongStream.range(0, nbEntries)
             .parallel()
-            .forEach(Throwing.longConsumer(value -> {
-                        long result = modSeqProvider.nextModSeq(null, mailbox);
-                        assertThat(result).isGreaterThan(previousValue.get());
-                        previousValue.set(result);
-                })
-            );
+            .map(Throwing.longUnaryOperator(x -> 
modSeqProvider.nextModSeq(null, mailbox)))
+            .distinct()
+            .count();
+        assertThat(nbValues).isEqualTo(nbEntries);
     }
     
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to