From 56e8e1e59b6a81df635b988b19b22cb27d0e3e08 Mon Sep 17 00:00:00 2001 From: Benoit TELLIER Date: Fri, 12 Aug 2022 16:03:46 +0700 Subject: [PATCH] JAMES-3784 EmptyErrorMailRepositoryHealthCheck: Wrap blocking calls (#1122) --- .../api/EmptyErrorMailRepositoryHealthCheck.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/EmptyErrorMailRepositoryHealthCheck.java b/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/EmptyErrorMailRepositoryHealthCheck.java index f699a25bbfd..235fa3e116b 100644 --- a/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/EmptyErrorMailRepositoryHealthCheck.java +++ b/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/EmptyErrorMailRepositoryHealthCheck.java @@ -23,8 +23,7 @@ import org.apache.james.core.healthcheck.HealthCheck; import org.apache.james.core.healthcheck.Result; import org.apache.james.util.FunctionalUtils; - -import com.github.fge.lambdas.Throwing; +import org.apache.james.util.ReactorUtils; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -46,11 +45,13 @@ public ComponentName componentName() { @Override public Mono check() { - return Flux.fromStream(Throwing.supplier(() -> repositoryStore.getByPath(errorRepositoryPath))) + return Mono.fromCallable(() -> repositoryStore.getByPath(errorRepositoryPath)) + .flatMapMany(Flux::fromStream) .flatMap(MailRepository::sizeReactive) .any(repositorySize -> repositorySize > 0) .filter(FunctionalUtils.identityPredicate()) .map(hasSize -> Result.degraded(COMPONENT_NAME, "MailRepository is not empty")) - .switchIfEmpty(Mono.just(Result.healthy(COMPONENT_NAME))); + .switchIfEmpty(Mono.just(Result.healthy(COMPONENT_NAME))) + .subscribeOn(ReactorUtils.BLOCKING_CALL_WRAPPER); } }