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/20 13:57:40 UTC

[james-project] branch master updated: [BUILD] Fix unstable cassandra mapper tests (#1362)

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 a493f7d405 [BUILD] Fix unstable cassandra mapper tests (#1362)
a493f7d405 is described below

commit a493f7d4052dc4a03279c60ee9f4837129872ceb
Author: Trần Hồng Quân <55...@users.noreply.github.com>
AuthorDate: Tue Dec 20 20:57:35 2022 +0700

    [BUILD] Fix unstable cassandra mapper tests (#1362)
    
    Currently, for each test, `mapperProvider` is created before BeforeEachCallBack and BeforeEach lead to it sometime points to a closed CqlSession (when max tests e.g 500 played then Cassandra container restart -> close old session and open new session).
    Current flow for each mapper test: create new final `mapperProvider` (refer to to-be-closed session) -> BeforeEachCallback (restarting Cassandra leads to close old session and create a new session) -> BeforeEach (return the `mapperProvider`refers to closed session).
    
    We need to let `mapperProvider` be created in BeforeEach to avoid refer to a closed session.
    Now the flow: create a null `mapperProvider` -> BeforeEachCallback (restarting Cassandra leads to close old session and create a new session) -> BeforeEach (set a new `mapperProvider` which always refers to the new session)
---
 ...andraMessageIdMapperRelaxedConsistencyTest.java | 26 ++++++++++++----------
 .../mail/CassandraMessageIdMapperTest.java         |  7 +++---
 ...ssandraMessageMapperRelaxedConsistencyTest.java | 26 ++++++++++++----------
 .../cassandra/mail/CassandraMessageMapperTest.java |  7 +++---
 4 files changed, 36 insertions(+), 30 deletions(-)

diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperRelaxedConsistencyTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperRelaxedConsistencyTest.java
index 5380a66fa9..81c8f8984d 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperRelaxedConsistencyTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperRelaxedConsistencyTest.java
@@ -33,15 +33,16 @@ class CassandraMessageIdMapperRelaxedConsistencyTest {
 
     @Nested
     class WeakReadConsistency extends MessageIdMapperTest {
-        private final CassandraMapperProvider mapperProvider = new CassandraMapperProvider(
-            cassandraCluster.getCassandraCluster(),
-            CassandraConfiguration.builder()
-                .messageReadStrongConsistency(false)
-                .messageWriteStrongConsistency(true)
-                .build());
+        private CassandraMapperProvider mapperProvider;
 
         @Override
         protected CassandraMapperProvider provideMapper() {
+            mapperProvider = new CassandraMapperProvider(
+                cassandraCluster.getCassandraCluster(),
+                CassandraConfiguration.builder()
+                    .messageReadStrongConsistency(false)
+                    .messageWriteStrongConsistency(true)
+                    .build());
             return mapperProvider;
         }
 
@@ -53,15 +54,16 @@ class CassandraMessageIdMapperRelaxedConsistencyTest {
 
     @Nested
     class WeakWriteConsistency extends MessageIdMapperTest {
-        private final CassandraMapperProvider mapperProvider = new CassandraMapperProvider(
-            cassandraCluster.getCassandraCluster(),
-            CassandraConfiguration.builder()
-                .messageReadStrongConsistency(false)
-                .messageWriteStrongConsistency(false)
-                .build());
+        private CassandraMapperProvider mapperProvider;
 
         @Override
         protected CassandraMapperProvider provideMapper() {
+            mapperProvider = new CassandraMapperProvider(
+                cassandraCluster.getCassandraCluster(),
+                CassandraConfiguration.builder()
+                    .messageReadStrongConsistency(false)
+                    .messageWriteStrongConsistency(false)
+                    .build());
             return mapperProvider;
         }
 
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
index 4af4d7785b..f493c188d3 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
@@ -63,12 +63,13 @@ class CassandraMessageIdMapperTest extends MessageIdMapperTest {
     @RegisterExtension
     static CassandraClusterExtension cassandraCluster = new CassandraClusterExtension(MailboxAggregateModule.MODULE);
 
-    private final CassandraMapperProvider mapperProvider = new CassandraMapperProvider(
-        cassandraCluster.getCassandraCluster(),
-        CassandraConfiguration.DEFAULT_CONFIGURATION);
+    private CassandraMapperProvider mapperProvider;
 
     @Override
     protected CassandraMapperProvider provideMapper() {
+        mapperProvider = new CassandraMapperProvider(
+            cassandraCluster.getCassandraCluster(),
+            CassandraConfiguration.DEFAULT_CONFIGURATION);
         return mapperProvider;
     }
 
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapperRelaxedConsistencyTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapperRelaxedConsistencyTest.java
index f6d65f6c00..efdebf845a 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapperRelaxedConsistencyTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapperRelaxedConsistencyTest.java
@@ -34,15 +34,16 @@ class CassandraMessageMapperRelaxedConsistencyTest {
 
     @Nested
     class WeakReadConsistency extends MessageMapperTest {
-        private final CassandraMapperProvider cassandraMapperProvider = new CassandraMapperProvider(
-            cassandraCluster.getCassandraCluster(),
-            CassandraConfiguration.builder()
-                .messageReadStrongConsistency(false)
-                .messageWriteStrongConsistency(true)
-                .build());
+        private CassandraMapperProvider cassandraMapperProvider;
 
         @Override
         protected MapperProvider createMapperProvider() {
+            cassandraMapperProvider = new CassandraMapperProvider(
+                cassandraCluster.getCassandraCluster(),
+                CassandraConfiguration.builder()
+                    .messageReadStrongConsistency(false)
+                    .messageWriteStrongConsistency(true)
+                    .build());
             return cassandraMapperProvider;
         }
 
@@ -54,15 +55,16 @@ class CassandraMessageMapperRelaxedConsistencyTest {
 
     @Nested
     class WeakWriteConsistency extends MessageMapperTest {
-        private final CassandraMapperProvider cassandraMapperProvider = new CassandraMapperProvider(
-            cassandraCluster.getCassandraCluster(),
-            CassandraConfiguration.builder()
-                .messageReadStrongConsistency(false)
-                .messageWriteStrongConsistency(false)
-                .build());
+        private CassandraMapperProvider cassandraMapperProvider;
 
         @Override
         protected MapperProvider createMapperProvider() {
+            cassandraMapperProvider = new CassandraMapperProvider(
+                cassandraCluster.getCassandraCluster(),
+                CassandraConfiguration.builder()
+                    .messageReadStrongConsistency(false)
+                    .messageWriteStrongConsistency(false)
+                    .build());
             return cassandraMapperProvider;
         }
 
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapperTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapperTest.java
index dfc02de3ac..a459de58ff 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapperTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapperTest.java
@@ -60,12 +60,13 @@ class CassandraMessageMapperTest extends MessageMapperTest {
     @RegisterExtension
     static CassandraClusterExtension cassandraCluster = new CassandraClusterExtension(MailboxAggregateModule.MODULE);
 
-    private final CassandraMapperProvider cassandraMapperProvider = new CassandraMapperProvider(
-        cassandraCluster.getCassandraCluster(),
-        CassandraConfiguration.DEFAULT_CONFIGURATION);
+    private CassandraMapperProvider cassandraMapperProvider;
 
     @Override
     protected MapperProvider createMapperProvider() {
+        cassandraMapperProvider = new CassandraMapperProvider(
+            cassandraCluster.getCassandraCluster(),
+            CassandraConfiguration.DEFAULT_CONFIGURATION);
         return cassandraMapperProvider;
     }
 


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