diff --git a/spring-web/src/main/java/org/springframework/http/codec/EncoderHttpMessageWriter.java b/spring-web/src/main/java/org/springframework/http/codec/EncoderHttpMessageWriter.java index cf1d146446..3fe1920773 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/EncoderHttpMessageWriter.java +++ b/spring-web/src/main/java/org/springframework/http/codec/EncoderHttpMessageWriter.java @@ -141,18 +141,16 @@ public class EncoderHttpMessageWriter implements HttpMessageWriter { } if (isStreamingMediaType(contentType)) { - return message - .writeAndFlushWith(body.map(buffer -> { - Hints.touchDataBuffer(buffer, hints, logger); - return Mono.just(buffer).doOnDiscard(PooledDataBuffer.class, DataBufferUtils::release); - })) - .doOnDiscard(PooledDataBuffer.class, DataBufferUtils::release); + return message.writeAndFlushWith(body.map(buffer -> { + Hints.touchDataBuffer(buffer, hints, logger); + return Mono.just(buffer).doOnDiscard(PooledDataBuffer.class, DataBufferUtils::release); + })); } if (logger.isDebugEnabled()) { body = body.doOnNext(buffer -> Hints.touchDataBuffer(buffer, hints, logger)); } - return message.writeWith(body).doOnDiscard(PooledDataBuffer.class, DataBufferUtils::release); + return message.writeWith(body); } @Nullable