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

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

commit 128e8b6fd2e7be3e8e45c45a4beb839f56f2d6f1
Author: Quan Tran <[email protected]>
AuthorDate: Tue Oct 28 17:32:12 2025 +0700

    JAMES-4148 Fix reactor issue
    
    [ERROR] r.c.p.Operators - Operator called default onErrorDropped
    reactor.core.publisher.Sinks$EmissionException: Spec. Rule 1.3 - 
onSubscribe, onNext, onError and onComplete signaled to a Subscriber MUST be 
signaled serially.
            at 
reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:56)
            at 
org.apache.james.task.MemoryWorkQueue.submit(MemoryWorkQueue.java:51)
            at 
org.apache.james.task.MemoryTaskManager.submit(MemoryTaskManager.java:113)
            at 
org.apache.james.webadmin.data.jmap.RunRuleOnAllMailboxesRoute.lambda$runRulesOnUserMailbox$2(RunRuleOnAllMailboxesRoute.java:135)
            at reactor.core.publisher.MonoCallable.call(MonoCallable.java:72)
            at 
reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:228)
            at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
            at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
            at 
java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317)
            at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
            at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
            at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
            at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
            at java.base/java.lang.Thread.run(Thread.java:1583)
    
    java.lang.AssertionError: 1 expectation failed.
    Expected status code <201> but was <404>.
---
 .../org/apache/james/webadmin/data/jmap/RunRuleOnAllMailboxesRoute.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RunRuleOnAllMailboxesRoute.java
 
b/server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RunRuleOnAllMailboxesRoute.java
index da8863fd78..14b2683fc1 100644
--- 
a/server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RunRuleOnAllMailboxesRoute.java
+++ 
b/server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RunRuleOnAllMailboxesRoute.java
@@ -126,6 +126,7 @@ public class RunRuleOnAllMailboxesRoute implements 
ConditionalRoute {
             .filterWhen(username -> mailboxForUserExists(username, 
mailboxName))
             .flatMap(username -> runRulesOnUserMailbox(username, mailboxName, 
rules))
             .collectList()
+            .subscribeOn(ReactorUtils.BLOCKING_CALL_WRAPPER)
             .block();
     }
 
@@ -133,7 +134,6 @@ public class RunRuleOnAllMailboxesRoute implements 
ConditionalRoute {
         Task task = new RunRulesOnMailboxTask(username, mailboxName, rules, 
runRulesOnMailboxService);
 
         return Mono.fromCallable(() -> taskManager.submit(task))
-            .subscribeOn(ReactorUtils.BLOCKING_CALL_WRAPPER)
             .map(taskId -> new UserTask(username, taskId));
     }
 


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

Reply via email to