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