From 005e85b0f55c8a073e6180739232f4a124d013bf Mon Sep 17 00:00:00 2001 From: Sebastien Deleuze Date: Fri, 14 Apr 2017 13:18:20 +0200 Subject: [PATCH] Update to latest Reactor 3.1 API changes Issue: SPR-15318 --- .../springframework/http/codec/DecoderHttpMessageReader.java | 4 ++-- .../springframework/http/codec/EncoderHttpMessageWriter.java | 2 +- .../http/server/reactive/ReactorHttpHandlerAdapter.java | 2 +- .../http/server/reactive/RxNettyHttpHandlerAdapter.java | 2 +- .../web/server/adapter/HttpWebHandlerAdapter.java | 2 +- .../web/server/handler/ExceptionHandlingWebHandler.java | 2 +- .../http/server/reactive/ServerHttpResponseTests.java | 2 +- .../org/springframework/web/reactive/DispatcherHandler.java | 2 +- .../web/reactive/function/server/DefaultServerRequest.java | 4 ++-- .../web/reactive/function/server/RouterFunctions.java | 2 +- .../annotation/AbstractMessageReaderArgumentResolver.java | 4 ++-- .../method/annotation/RequestMappingHandlerAdapter.java | 2 +- 12 files changed, 15 insertions(+), 15 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/codec/DecoderHttpMessageReader.java b/spring-web/src/main/java/org/springframework/http/codec/DecoderHttpMessageReader.java index e9892f38844..c54e50fcdbf 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/DecoderHttpMessageReader.java +++ b/spring-web/src/main/java/org/springframework/http/codec/DecoderHttpMessageReader.java @@ -90,7 +90,7 @@ public class DecoderHttpMessageReader implements HttpMessageReader { MediaType contentType = getContentType(message); return this.decoder .decode(message.getBody(), elementType, contentType, hints) - .mapError(this::mapError); + .onErrorMap(this::mapError); } @Override @@ -100,7 +100,7 @@ public class DecoderHttpMessageReader implements HttpMessageReader { MediaType contentType = getContentType(message); return this.decoder .decodeToMono(message.getBody(), elementType, contentType, hints) - .mapError(this::mapError); + .onErrorMap(this::mapError); } private MediaType getContentType(HttpMessage inputMessage) { diff --git a/spring-web/src/main/java/org/springframework/http/codec/EncoderHttpMessageWriter.java b/spring-web/src/main/java/org/springframework/http/codec/EncoderHttpMessageWriter.java index b93d9862566..4bc30d469f8 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/EncoderHttpMessageWriter.java +++ b/spring-web/src/main/java/org/springframework/http/codec/EncoderHttpMessageWriter.java @@ -99,7 +99,7 @@ public class EncoderHttpMessageWriter implements HttpMessageWriter { Flux body = this.encoder .encode(inputStream, message.bufferFactory(), elementType, contentType, hints) - .mapError(this::mapError); + .onErrorMap(this::mapError); return isStreamingMediaType(contentType) ? message.writeAndFlushWith(body.map(Flux::just)) : diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorHttpHandlerAdapter.java b/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorHttpHandlerAdapter.java index cf010ae21a7..043c7ef18b2 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorHttpHandlerAdapter.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorHttpHandlerAdapter.java @@ -57,7 +57,7 @@ public class ReactorHttpHandlerAdapter ReactorServerHttpResponse resp = new ReactorServerHttpResponse(response, bufferFactory); return this.httpHandler.handle(req, resp) - .switchOnError(ex -> { + .onErrorResume(ex -> { logger.error("Could not complete request", ex); response.status(HttpResponseStatus.INTERNAL_SERVER_ERROR); return Mono.empty(); diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/RxNettyHttpHandlerAdapter.java b/spring-web/src/main/java/org/springframework/http/server/reactive/RxNettyHttpHandlerAdapter.java index 57978cb50e6..091c220a1c3 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/RxNettyHttpHandlerAdapter.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/RxNettyHttpHandlerAdapter.java @@ -66,7 +66,7 @@ public class RxNettyHttpHandlerAdapter implements RequestHandler result = this.httpHandler.handle(request, response) - .switchOnError(ex -> { + .onErrorResume(ex -> { logger.error("Could not complete request", ex); nativeResponse.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR); return Mono.empty(); diff --git a/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java b/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java index ffae11f5fda..404cd8d5c67 100644 --- a/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java +++ b/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java @@ -76,7 +76,7 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa public Mono handle(ServerHttpRequest request, ServerHttpResponse response) { ServerWebExchange exchange = createExchange(request, response); return getDelegate().handle(exchange) - .switchOnError(ex -> { + .onErrorResume(ex -> { if (logger.isDebugEnabled()) { logger.debug("Could not complete request", ex); } diff --git a/spring-web/src/main/java/org/springframework/web/server/handler/ExceptionHandlingWebHandler.java b/spring-web/src/main/java/org/springframework/web/server/handler/ExceptionHandlingWebHandler.java index 084ee00c4ed..d6ef736f304 100644 --- a/spring-web/src/main/java/org/springframework/web/server/handler/ExceptionHandlingWebHandler.java +++ b/spring-web/src/main/java/org/springframework/web/server/handler/ExceptionHandlingWebHandler.java @@ -99,7 +99,7 @@ public class ExceptionHandlingWebHandler extends WebHandlerDecorator { } for (WebExceptionHandler handler : this.exceptionHandlers) { - completion = completion.switchOnError(ex -> handler.handle(exchange, ex)); + completion = completion.onErrorResume(ex -> handler.handle(exchange, ex)); } return completion; diff --git a/spring-web/src/test/java/org/springframework/http/server/reactive/ServerHttpResponseTests.java b/spring-web/src/test/java/org/springframework/http/server/reactive/ServerHttpResponseTests.java index 6d22304bb83..b5c81ba8d3e 100644 --- a/spring-web/src/test/java/org/springframework/http/server/reactive/ServerHttpResponseTests.java +++ b/spring-web/src/test/java/org/springframework/http/server/reactive/ServerHttpResponseTests.java @@ -96,7 +96,7 @@ public class ServerHttpResponseTests { public void writeWithError() throws Exception { TestServerHttpResponse response = new TestServerHttpResponse(); IllegalStateException error = new IllegalStateException("boo"); - response.writeWith(Flux.error(error)).switchOnError(ex -> Mono.empty()).block(); + response.writeWith(Flux.error(error)).onErrorResume(ex -> Mono.empty()).block(); assertFalse(response.statusCodeWritten); assertFalse(response.headersWritten); diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/DispatcherHandler.java b/spring-webflux/src/main/java/org/springframework/web/reactive/DispatcherHandler.java index 08c42e5ad9f..ea16fefc451 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/DispatcherHandler.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/DispatcherHandler.java @@ -141,7 +141,7 @@ public class DispatcherHandler implements WebHandler, ApplicationContextAware { private Mono handleResult(ServerWebExchange exchange, HandlerResult result) { return getResultHandler(result).handleResult(exchange, result) - .switchOnError(ex -> result.applyExceptionHandler(ex).flatMap(exceptionResult -> + .onErrorResume(ex -> result.applyExceptionHandler(ex).flatMap(exceptionResult -> getResultHandler(exceptionResult).handleResult(exchange, exceptionResult))); } diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultServerRequest.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultServerRequest.java index 0a77a91d0a7..b40e3c34dba 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultServerRequest.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultServerRequest.java @@ -120,13 +120,13 @@ class DefaultServerRequest implements ServerRequest { @Override public Mono bodyToMono(Class elementClass) { Mono mono = body(BodyExtractors.toMono(elementClass)); - return mono.mapError(UnsupportedMediaTypeException.class, ERROR_MAPPER); + return mono.onErrorMap(UnsupportedMediaTypeException.class, ERROR_MAPPER); } @Override public Flux bodyToFlux(Class elementClass) { Flux flux = body(BodyExtractors.toFlux(elementClass)); - return flux.mapError(UnsupportedMediaTypeException.class, ERROR_MAPPER); + return flux.onErrorMap(UnsupportedMediaTypeException.class, ERROR_MAPPER); } @Override diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RouterFunctions.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RouterFunctions.java index eca10d5b0d8..60e15438e88 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RouterFunctions.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RouterFunctions.java @@ -234,7 +234,7 @@ public abstract class RouterFunctions { .defaultIfEmpty(notFound()) .flatMap(handlerFunction -> wrapException(() -> handlerFunction.handle(request))) .flatMap(response -> wrapException(() -> response.writeTo(exchange, strategies))) - .switchOnError(ResponseStatusException.class, + .onErrorResume(ResponseStatusException.class, ex -> { exchange.getResponse().setStatusCode(ex.getStatus()); if (ex.getMessage() != null) { diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractMessageReaderArgumentResolver.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractMessageReaderArgumentResolver.java index c90b074f8ce..735f3a0299c 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractMessageReaderArgumentResolver.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractMessageReaderArgumentResolver.java @@ -117,7 +117,7 @@ public abstract class AbstractMessageReaderArgumentResolver extends HandlerMetho Map readHints = Collections.emptyMap(); if (adapter != null && adapter.isMultiValue()) { Flux flux = reader.read(bodyType, elementType, request, response, readHints); - flux = flux.onErrorResumeWith(ex -> Flux.error(getReadError(bodyParameter, ex))); + flux = flux.onErrorResume(ex -> Flux.error(getReadError(bodyParameter, ex))); if (isBodyRequired || !adapter.supportsEmpty()) { flux = flux.switchIfEmpty(Flux.error(getRequiredBodyError(bodyParameter))); } @@ -130,7 +130,7 @@ public abstract class AbstractMessageReaderArgumentResolver extends HandlerMetho } else { Mono mono = reader.readMono(bodyType, elementType, request, response, readHints); - mono = mono.switchOnError(ex -> Mono.error(getReadError(bodyParameter, ex))); + mono = mono.onErrorResume(ex -> Mono.error(getReadError(bodyParameter, ex))); if (isBodyRequired || (adapter != null && !adapter.supportsEmpty())) { mono = mono.switchIfEmpty(Mono.error(getRequiredBodyError(bodyParameter))); } diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerAdapter.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerAdapter.java index 0a24e04f5a0..a158554e721 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerAdapter.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerAdapter.java @@ -189,7 +189,7 @@ public class RequestMappingHandlerAdapter implements HandlerAdapter, Application .then(() -> this.methodResolver.getRequestMappingMethod(handlerMethod) .invoke(exchange, bindingContext) .doOnNext(result -> result.setExceptionHandler(exceptionHandler)) - .switchOnError(exceptionHandler)); + .onErrorResume(exceptionHandler)); } private Mono handleException(Throwable ex, HandlerMethod handlerMethod,