|
|
|
@ -141,16 +141,18 @@ public class EncoderHttpMessageWriter<T> implements HttpMessageWriter<T> { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (isStreamingMediaType(contentType)) { |
|
|
|
if (isStreamingMediaType(contentType)) { |
|
|
|
return message.writeAndFlushWith(body.map(buffer -> { |
|
|
|
return message |
|
|
|
Hints.touchDataBuffer(buffer, hints, logger); |
|
|
|
.writeAndFlushWith(body.map(buffer -> { |
|
|
|
return Mono.just(buffer).doOnDiscard(PooledDataBuffer.class, DataBufferUtils::release); |
|
|
|
Hints.touchDataBuffer(buffer, hints, logger); |
|
|
|
})); |
|
|
|
return Mono.just(buffer).doOnDiscard(PooledDataBuffer.class, DataBufferUtils::release); |
|
|
|
|
|
|
|
})) |
|
|
|
|
|
|
|
.doOnDiscard(PooledDataBuffer.class, DataBufferUtils::release); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (logger.isDebugEnabled()) { |
|
|
|
if (logger.isDebugEnabled()) { |
|
|
|
body = body.doOnNext(buffer -> Hints.touchDataBuffer(buffer, hints, logger)); |
|
|
|
body = body.doOnNext(buffer -> Hints.touchDataBuffer(buffer, hints, logger)); |
|
|
|
} |
|
|
|
} |
|
|
|
return message.writeWith(body); |
|
|
|
return message.writeWith(body).doOnDiscard(PooledDataBuffer.class, DataBufferUtils::release); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Nullable |
|
|
|
@Nullable |
|
|
|
|