diff --git a/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartHttpMessageReader.java b/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartHttpMessageReader.java index 48953767d0e..06cf06e5e1c 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartHttpMessageReader.java +++ b/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartHttpMessageReader.java @@ -106,6 +106,7 @@ public class MultipartHttpMessageReader extends LoggingCodecSupport } + @SuppressWarnings("unchecked") @Override public Mono> readMono(ResolvableType elementType, ReactiveHttpInputMessage inputMessage, Map hints) { @@ -115,6 +116,9 @@ public class MultipartHttpMessageReader extends LoggingCodecSupport return this.partReader.read(elementType, inputMessage, allHints) .collectMultimap(Part::name) + .doOnDiscard(Map.class, map -> + ((Map>) map).values() + .forEach(parts -> parts.forEach(part -> part.delete().subscribe()))) .doOnNext(map -> LogFormatUtils.traceDebug(logger, traceOn -> Hints.getLogPrefix(hints) + "Parsed " + (isEnableLoggingRequestDetails() ?