diff --git a/spring-web/src/main/java/org/springframework/http/codec/xml/XmlEventDecoder.java b/spring-web/src/main/java/org/springframework/http/codec/xml/XmlEventDecoder.java index 1493c894b1..e40314e387 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/xml/XmlEventDecoder.java +++ b/spring-web/src/main/java/org/springframework/http/codec/xml/XmlEventDecoder.java @@ -106,14 +106,14 @@ public class XmlEventDecoder extends AbstractDecoder { try { InputStream is = dataBuffer.asInputStream(); Iterator eventReader = inputFactory.createXMLEventReader(is); - return Flux.fromIterable((Iterable) () -> eventReader); + return Flux.fromIterable((Iterable) () -> eventReader) + .doFinally(t -> { + DataBufferUtils.release(dataBuffer); + }); } catch (XMLStreamException ex) { return Mono.error(ex); } - finally { - DataBufferUtils.release(dataBuffer); - } }); } }