Merge branch '2.2.x'
This commit is contained in:
@@ -22,8 +22,9 @@ import reactor.core.publisher.Mono;
|
||||
import org.springframework.beans.factory.ObjectProvider;
|
||||
import org.springframework.cloud.client.circuitbreaker.ReactiveCircuitBreakerFactory;
|
||||
import org.springframework.cloud.gateway.support.ServiceUnavailableException;
|
||||
import org.springframework.cloud.gateway.support.TimeoutException;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.reactive.DispatcherHandler;
|
||||
import org.springframework.web.server.ResponseStatusException;
|
||||
|
||||
/**
|
||||
* @author Ryan Baxter
|
||||
@@ -40,7 +41,8 @@ public class SpringCloudCircuitBreakerResilience4JFilterFactory
|
||||
@Override
|
||||
protected Mono<Void> handleErrorWithoutFallback(Throwable t) {
|
||||
if (java.util.concurrent.TimeoutException.class.isInstance(t)) {
|
||||
return Mono.error(new TimeoutException());
|
||||
return Mono.error(new ResponseStatusException(HttpStatus.GATEWAY_TIMEOUT,
|
||||
t.getMessage(), t));
|
||||
}
|
||||
if (CallNotPermittedException.class.isInstance(t)) {
|
||||
return Mono.error(new ServiceUnavailableException());
|
||||
|
||||
@@ -71,6 +71,15 @@ public class SpringCloudCircuitBreakerResilience4JFilterFactoryTests
|
||||
.value(RETRIEVED_EXCEPTION, containsString("TimeoutException"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void cbFilterTimesoutMessage() {
|
||||
testClient.get().uri("/delay/3").header("Host", "www.sccbtimeout.org").exchange()
|
||||
.expectStatus().isEqualTo(HttpStatus.GATEWAY_TIMEOUT).expectBody()
|
||||
.jsonPath("$.status")
|
||||
.isEqualTo(String.valueOf(HttpStatus.GATEWAY_TIMEOUT.value()))
|
||||
.jsonPath("$.message").value(containsString("1000ms"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toStringFormat() {
|
||||
SpringCloudCircuitBreakerFilterFactory.Config config = new SpringCloudCircuitBreakerFilterFactory.Config()
|
||||
|
||||
Reference in New Issue
Block a user