From 76baf85cfb7f2589ef4a80bf0318e05caf3bd2f6 Mon Sep 17 00:00:00 2001 From: Sebastien Deleuze Date: Wed, 29 Jun 2016 14:19:12 +0200 Subject: [PATCH] Polish JacksonJsonDecoder --- .../codec/support/JacksonJsonDecoder.java | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/spring-web-reactive/src/main/java/org/springframework/core/codec/support/JacksonJsonDecoder.java b/spring-web-reactive/src/main/java/org/springframework/core/codec/support/JacksonJsonDecoder.java index a72f187ed3..13d2d7aea2 100644 --- a/spring-web-reactive/src/main/java/org/springframework/core/codec/support/JacksonJsonDecoder.java +++ b/spring-web-reactive/src/main/java/org/springframework/core/codec/support/JacksonJsonDecoder.java @@ -68,20 +68,16 @@ public class JacksonJsonDecoder extends AbstractDecoder { JavaType javaType = typeFactory.constructType(elementType.getType()); ObjectReader reader = this.mapper.readerFor(javaType); - Flux stream = Flux.from(inputStream); - if (this.preProcessor != null) { - stream = this.preProcessor.decode(inputStream, elementType, mimeType, hints); - } - - return stream.map(dataBuffer -> { - try { - Object value = reader.readValue(dataBuffer.asInputStream()); - DataBufferUtils.release(dataBuffer); - return value; - } - catch (IOException e) { - throw new CodecException("Error while reading the data", e); - } + return this.preProcessor.decode(inputStream, elementType, mimeType, hints) + .map(dataBuffer -> { + try { + Object value = reader.readValue(dataBuffer.asInputStream()); + DataBufferUtils.release(dataBuffer); + return value; + } + catch (IOException e) { + return Flux.error(new CodecException("Error while reading the data", e)); + } }); }