This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch 3.7.x in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 385814d5af8e52090c76884d43b0668d559c897a Author: Benoit Tellier <[email protected]> AuthorDate: Fri Mar 4 21:12:30 2022 +0700 JAMES-3720 JMAP Drat message sender: disposal of Mail can block This is the case for large mails whom are back by a temporary file. This temporary file need to be deleted... Which is blocking! Scheduling on an elastic scheduler ensures we do not block the parallel schedulers... (cherry picked from commit 5b1b933e258647f7680814104c2f719edf163da5) --- .../main/java/org/apache/james/jmap/draft/methods/MessageSender.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/MessageSender.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/MessageSender.java index 1903c75..62d4f6c 100644 --- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/MessageSender.java +++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/MessageSender.java @@ -38,6 +38,7 @@ import org.apache.mailet.Mail; import com.google.common.annotations.VisibleForTesting; import reactor.core.publisher.Mono; +import reactor.core.scheduler.Schedulers; public class MessageSender { public static class MessageMimeMessageSource extends MimeMessageSource { @@ -75,7 +76,7 @@ public class MessageSender { public Mono<Void> sendMessage(MetaDataWithContent message, Envelope envelope, MailboxSession session) { return Mono.usingWhen(Mono.fromCallable(() -> buildMail(message, envelope)), mail -> sendMessage(message.getMessageId(), mail, session), - mail -> Mono.fromRunnable(() -> LifecycleUtil.dispose(mail))); + mail -> Mono.fromRunnable(() -> LifecycleUtil.dispose(mail)).subscribeOn(Schedulers.elastic())); } @VisibleForTesting --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
