From 09f1f727a71326cec68638e80d232cc70278706a Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Fri, 19 Jan 2018 10:39:38 -0500 Subject: [PATCH] Remove explicit subscribe in MultipartHttpMessageWriter Issue: SPR-16402 --- .../http/codec/multipart/MultipartHttpMessageWriter.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartHttpMessageWriter.java b/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartHttpMessageWriter.java index aef9cdfae7..63c0f9bfd4 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartHttpMessageWriter.java +++ b/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartHttpMessageWriter.java @@ -272,13 +272,10 @@ public class MultipartHttpMessageWriter implements HttpMessageWriter partWritten = ((HttpMessageWriter) writer.get()) .write(bodyPublisher, resolvableType, contentType, outputMessage, Collections.emptyMap()); - // partWritten.subscribe() is required in order to make sure MultipartHttpOutputMessage#getBody() - // returns a non-null value (occurs with ResourceHttpMessageWriter that invokes - // ReactiveHttpOutputMessage.writeWith() only when at least one element has been requested). - partWritten.subscribe(); - return Flux.concat( - Mono.just(generateBoundaryLine(boundary)), outputMessage.getBody(), Mono.just(generateNewLine())); + Mono.just(generateBoundaryLine(boundary)), + partWritten.thenMany(Flux.defer(outputMessage::getBody)), + Mono.just(generateNewLine())); }