diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplier.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplier.java index f0d9b585..79d22a95 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplier.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplier.java @@ -64,13 +64,14 @@ public class DiscoveryClientServiceInstanceListSupplier resolveTimeout(environment); this.serviceInstances = Flux .defer(() -> Flux.just(delegate.getInstances(serviceId))) + .subscribeOn(Schedulers.boundedElastic()) .timeout(timeout, Flux.defer(() -> { logTimeout(); return Flux.just(new ArrayList<>()); })).onErrorResume(error -> { logException(error); return Flux.just(new ArrayList<>()); - }).subscribeOn(Schedulers.boundedElastic()); + }); } public DiscoveryClientServiceInstanceListSupplier(ReactiveDiscoveryClient delegate, diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplierTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplierTests.java index 2e188cfe..980f7365 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplierTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplierTests.java @@ -20,7 +20,6 @@ import java.time.Duration; import org.assertj.core.util.Lists; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.mockito.internal.stubbing.answers.AnswersWithDelay; import org.mockito.internal.stubbing.answers.Returns; @@ -173,7 +172,6 @@ class DiscoveryClientServiceInstanceListSupplierTests { .verify(VERIFICATION_TIMEOUT); } - @Disabled // see https://github.com/spring-cloud/spring-cloud-commons/issues/802 @Test void shouldReturnEmptyInstancesListOnTimeoutBlockingClient() { environment.setProperty(SERVICE_DISCOVERY_TIMEOUT, "100ms");