From 1afc1fc90d4f4b6df80c5aa384c2a47e01da6345 Mon Sep 17 00:00:00 2001 From: rstoyanchev Date: Fri, 7 Oct 2022 18:05:35 +0100 Subject: [PATCH] Fix regression in AbstractJackson2Encoder Closes gh-29274 --- .../http/codec/json/AbstractJackson2Encoder.java | 1 + .../http/codec/json/Jackson2JsonEncoderTests.java | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/spring-web/src/main/java/org/springframework/http/codec/json/AbstractJackson2Encoder.java b/spring-web/src/main/java/org/springframework/http/codec/json/AbstractJackson2Encoder.java index dd1ce11ee70..21c55e4fc71 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/json/AbstractJackson2Encoder.java +++ b/spring-web/src/main/java/org/springframework/http/codec/json/AbstractJackson2Encoder.java @@ -198,6 +198,7 @@ public abstract class AbstractJackson2Encoder extends Jackson2CodecSupport imple bufferFactory.join(Arrays.asList(bufferFactory.wrap(prefix), dataBuffer)) : dataBuffer); }) + .switchIfEmpty(Mono.fromCallable(() -> bufferFactory.wrap(helper.getPrefix()))) .concatWith(Mono.fromCallable(() -> bufferFactory.wrap(helper.getSuffix()))); } diff --git a/spring-web/src/test/java/org/springframework/http/codec/json/Jackson2JsonEncoderTests.java b/spring-web/src/test/java/org/springframework/http/codec/json/Jackson2JsonEncoderTests.java index 786be589527..dbdca0ea99a 100644 --- a/spring-web/src/test/java/org/springframework/http/codec/json/Jackson2JsonEncoderTests.java +++ b/spring-web/src/test/java/org/springframework/http/codec/json/Jackson2JsonEncoderTests.java @@ -144,6 +144,14 @@ public class Jackson2JsonEncoderTests extends AbstractEncoderTests step + .consumeNextWith(expectString("[")) + .consumeNextWith(expectString("]")) + .verifyComplete()); + } + @Test // gh-29038 void encodeNonStreamWithErrorAsFirstSignal() { String message = "I'm a teapot";