This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch allow-disable-threads
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 3e38b341e354ef9f9f19033198edaffba6176155
Author: Benoit TELLIER <btell...@linagora.com>
AuthorDate: Thu Jun 5 06:42:32 2025 +0200

    This changeset will not alter thread categorisation which works decently 
today but only thread presentation
    to the end user which is currently relying on search. As an operator I 
wishes to have a security trigger
    if things go blur.
    [ENHANCEMENT] Allow disable threads
---
 .../james/mailbox/cassandra/CassandraThreadIdGuessingAlgorithm.java | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraThreadIdGuessingAlgorithm.java
 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraThreadIdGuessingAlgorithm.java
index 996726454d..812191c7cd 100644
--- 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraThreadIdGuessingAlgorithm.java
+++ 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraThreadIdGuessingAlgorithm.java
@@ -48,6 +48,8 @@ import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
 public class CassandraThreadIdGuessingAlgorithm implements 
ThreadIdGuessingAlgorithm {
+    private static final boolean DISABLE_THREADS = 
Boolean.valueOf(System.getProperty("james.mailbox.threads.disable", "false"));
+
     private final MailboxManager mailboxManager;
     private final CassandraThreadDAO threadDAO;
     private final CassandraThreadLookupDAO threadLookupDAO;
@@ -82,6 +84,10 @@ public class CassandraThreadIdGuessingAlgorithm implements 
ThreadIdGuessingAlgor
 
     @Override
     public Flux<MessageId> getMessageIdsInThread(ThreadId threadId, 
MailboxSession session) {
+        if (DISABLE_THREADS) {
+            return Flux.just(threadId.getBaseMessageId());
+        }
+
         SearchQuery searchQuery = SearchQuery.builder()
             .andCriteria(SearchQuery.threadId(threadId))
             .sorts(new SearchQuery.Sort(SearchQuery.Sort.SortClause.Arrival, 
SearchQuery.Sort.Order.NATURAL))


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

Reply via email to