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 453a0c41bc52ac1438da760f076c1971730779c8
Author: Benoit Tellier <btell...@linagora.com>
AuthorDate: Fri Jun 30 21:49:36 2023 +0700

    JAMES-3924 Allow conditional Cassandra statement recording
    
    Upon massive operations, recording all statements leads to OOM
---
 .../org/apache/james/backends/cassandra/StatementRecorder.java    | 8 ++++++--
 .../java/org/apache/james/backends/cassandra/TestingSession.java  | 6 +++++-
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git 
a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/StatementRecorder.java
 
b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/StatementRecorder.java
index 99a0d59908..e4204fe07b 100644
--- 
a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/StatementRecorder.java
+++ 
b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/StatementRecorder.java
@@ -52,14 +52,18 @@ public class StatementRecorder {
         List<Statement> select(List<Statement> statements);
     }
 
+    private final StatementRecorder.Selector selector;
     private final ConcurrentLinkedDeque statements;
 
-    StatementRecorder() {
+    StatementRecorder(Selector selector) {
+        this.selector = selector;
         statements = new ConcurrentLinkedDeque();
     }
 
     void recordStatement(Statement statement) {
-        statements.add(statement);
+        if (statements.addAll(selector.select(ImmutableList.of(statement)))) {
+            System.out.println("recordStatement");
+        }
     }
 
     public List<Statement> listExecutedStatements() {
diff --git 
a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSession.java
 
b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSession.java
index 226c60ae5c..6b856e2ea8 100644
--- 
a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSession.java
+++ 
b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSession.java
@@ -85,7 +85,11 @@ public class TestingSession implements CqlSession {
     }
 
     public StatementRecorder recordStatements() {
-        StatementRecorder statementRecorder = new StatementRecorder();
+        return recordStatements(StatementRecorder.Selector.ALL);
+    }
+
+    public StatementRecorder recordStatements(StatementRecorder.Selector 
selector) {
+        StatementRecorder statementRecorder = new StatementRecorder(selector);
         this.statementRecorder = Optional.of(statementRecorder);
         return statementRecorder;
     }


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

Reply via email to