Skip to content

Commit 09f1f72

Browse files
committed
Remove explicit subscribe in MultipartHttpMessageWriter
Issue: SPR-16402
1 parent 40127bd commit 09f1f72

File tree

1 file changed

+3
-6
lines changed

1 file changed

+3
-6
lines changed

spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartHttpMessageWriter.java

+3-6
Original file line numberDiff line numberDiff line change
@@ -272,13 +272,10 @@ private <T> Flux<DataBuffer> encodePart(byte[] boundary, String name, T value) {
272272
Mono<Void> partWritten = ((HttpMessageWriter<T>) writer.get())
273273
.write(bodyPublisher, resolvableType, contentType, outputMessage, Collections.emptyMap());
274274

275-
// partWritten.subscribe() is required in order to make sure MultipartHttpOutputMessage#getBody()
276-
// returns a non-null value (occurs with ResourceHttpMessageWriter that invokes
277-
// ReactiveHttpOutputMessage.writeWith() only when at least one element has been requested).
278-
partWritten.subscribe();
279-
280275
return Flux.concat(
281-
Mono.just(generateBoundaryLine(boundary)), outputMessage.getBody(), Mono.just(generateNewLine()));
276+
Mono.just(generateBoundaryLine(boundary)),
277+
partWritten.thenMany(Flux.defer(outputMessage::getBody)),
278+
Mono.just(generateNewLine()));
282279
}
283280

284281

0 commit comments

Comments
 (0)