diff --git a/spring-web/src/main/java/org/springframework/web/server/adapter/DefaultServerWebExchange.java b/spring-web/src/main/java/org/springframework/web/server/adapter/DefaultServerWebExchange.java index 07fe8e3e781..21a3193158e 100644 --- a/spring-web/src/main/java/org/springframework/web/server/adapter/DefaultServerWebExchange.java +++ b/spring-web/src/main/java/org/springframework/web/server/adapter/DefaultServerWebExchange.java @@ -247,18 +247,20 @@ public class DefaultServerWebExchange implements ServerWebExchange { @Override public Mono cleanupMultipart() { - if (this.multipartRead) { - return getMultipartData() - .onErrorComplete() // ignore errors reading multipart data - .flatMapIterable(Map::values) - .flatMapIterable(Function.identity()) - .flatMap(part -> part.delete() + return Mono.defer(() -> { + if (this.multipartRead) { + return getMultipartData() + .onErrorComplete() + .flatMapIterable(Map::values) + .flatMapIterable(Function.identity()) + .flatMap(part -> part.delete() .onErrorComplete()) - .then(); - } - else { - return Mono.empty(); - } + .then(); + } + else { + return Mono.empty(); + } + }); } @Override