From 09991f249223ba86846ccc58ada7be941c90ae87 Mon Sep 17 00:00:00 2001 From: divcon Date: Wed, 30 Nov 2022 00:32:38 +0900 Subject: [PATCH] Polishing in ResponseEntityResultHandler See gh-files --- .../annotation/ResponseEntityResultHandler.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ResponseEntityResultHandler.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ResponseEntityResultHandler.java index b520d952c01..11d19d4eaec 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ResponseEntityResultHandler.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ResponseEntityResultHandler.java @@ -150,8 +150,8 @@ public class ResponseEntityResultHandler extends AbstractMessageWriterResultHand httpEntity = new ResponseEntity<>(headers, HttpStatus.OK); } else { - throw new IllegalArgumentException( - "HttpEntity or HttpHeaders expected but got: " + returnValue.getClass()); + return Mono.error(() -> new IllegalArgumentException( + "HttpEntity or HttpHeaders expected but got: " + returnValue.getClass())); } if (httpEntity.getBody() instanceof ProblemDetail detail) { @@ -175,8 +175,7 @@ public class ResponseEntityResultHandler extends AbstractMessageWriterResultHand HttpHeaders entityHeaders = httpEntity.getHeaders(); HttpHeaders responseHeaders = exchange.getResponse().getHeaders(); if (!entityHeaders.isEmpty()) { - entityHeaders.entrySet().stream() - .forEach(entry -> responseHeaders.put(entry.getKey(), entry.getValue())); + responseHeaders.putAll(entityHeaders); } if (httpEntity.getBody() == null || returnValue instanceof HttpHeaders) { @@ -186,11 +185,9 @@ public class ResponseEntityResultHandler extends AbstractMessageWriterResultHand String etag = entityHeaders.getETag(); Instant lastModified = Instant.ofEpochMilli(entityHeaders.getLastModified()); HttpMethod httpMethod = exchange.getRequest().getMethod(); - if (SAFE_METHODS.contains(httpMethod) && exchange.checkNotModified(etag, lastModified)) { - return exchange.getResponse().setComplete(); - } - - return writeBody(httpEntity.getBody(), bodyParameter, actualParameter, exchange); + return (SAFE_METHODS.contains(httpMethod) && exchange.checkNotModified(etag, lastModified)) ? + exchange.getResponse().setComplete() + : writeBody(httpEntity.getBody(), bodyParameter, actualParameter, exchange); }); }