diff --git a/spring-web-reactive/src/main/java/org/springframework/http/codec/json/JacksonJsonEncoder.java b/spring-web-reactive/src/main/java/org/springframework/http/codec/json/JacksonJsonEncoder.java index 862edd712a..7499826d7c 100644 --- a/spring-web-reactive/src/main/java/org/springframework/http/codec/json/JacksonJsonEncoder.java +++ b/spring-web-reactive/src/main/java/org/springframework/http/codec/json/JacksonJsonEncoder.java @@ -83,7 +83,7 @@ public class JacksonJsonEncoder extends AbstractEncoder { Mono startArray = Mono.just(bufferFactory.wrap(START_ARRAY_BUFFER)); Flux arraySeparators = - Mono.just(bufferFactory.wrap(SEPARATOR_BUFFER)).repeat(); + Mono.fromSupplier(() -> bufferFactory.wrap(SEPARATOR_BUFFER)).repeat(); Mono endArray = Mono.just(bufferFactory.wrap(END_ARRAY_BUFFER)); diff --git a/spring-web-reactive/src/test/java/org/springframework/http/codec/json/JacksonJsonEncoderTests.java b/spring-web-reactive/src/test/java/org/springframework/http/codec/json/JacksonJsonEncoderTests.java index 6f33966118..ebcfe78b19 100644 --- a/spring-web-reactive/src/test/java/org/springframework/http/codec/json/JacksonJsonEncoderTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/http/codec/json/JacksonJsonEncoderTests.java @@ -52,7 +52,11 @@ public class JacksonJsonEncoderTests extends AbstractDataBufferAllocatingTestCas @Test public void encode() { - Flux source = Flux.just(new Pojo("foofoo", "barbar"), new Pojo("foofoofoo", "barbarbar")); + Flux source = Flux.just( + new Pojo("foo", "bar"), + new Pojo("foofoo", "barbar"), + new Pojo("foofoofoo", "barbarbar") + ); ResolvableType type = ResolvableType.forClass(Pojo.class); Flux output = @@ -62,11 +66,15 @@ public class JacksonJsonEncoderTests extends AbstractDataBufferAllocatingTestCas .subscribe(output) .assertComplete() .assertNoError() - .assertValuesWith(stringConsumer("["), + .assertValuesWith( + stringConsumer("["), + stringConsumer("{\"foo\":\"foo\",\"bar\":\"bar\"}"), + stringConsumer(","), stringConsumer("{\"foo\":\"foofoo\",\"bar\":\"barbar\"}"), stringConsumer(","), stringConsumer("{\"foo\":\"foofoofoo\",\"bar\":\"barbarbar\"}"), - stringConsumer("]")); + stringConsumer("]") + ); } @Test