Fix JsonObjectDecoder with '[' starting chunk

Issue: SPR-15013
master
Sebastien Deleuze 8 years ago
parent b70071fdda
commit 4021d239ab
  1. 3
      spring-web/src/main/java/org/springframework/http/codec/json/JsonObjectDecoder.java
  2. 13
      spring-web/src/test/java/org/springframework/http/codec/json/JsonObjectDecoderTests.java

@ -212,9 +212,6 @@ class JsonObjectDecoder extends AbstractDecoder<DataBuffer> {
}
}
if (this.input.readableBytes() == 0) {
this.index = 0;
}
return Flux.fromIterable(chunks);
}

@ -106,6 +106,19 @@ public class JsonObjectDecoderTests extends AbstractDataBufferAllocatingTestCase
.expectNext("{\"foo\": \"baz\"}")
.expectComplete()
.verify();
// SPR-15013
source = Flux.just(stringBuffer("["), stringBuffer("{\"id\":1,\"name\":\"Robert\"}"),
stringBuffer(","), stringBuffer("{\"id\":2,\"name\":\"Raide\"}"),
stringBuffer(","), stringBuffer("{\"id\":3,\"name\":\"Ford\"}"),
stringBuffer("]"));
output = decoder.decode(source, null, null, Collections.emptyMap()).map(JsonObjectDecoderTests::toString);
StepVerifier.create(output)
.expectNext("{\"id\":1,\"name\":\"Robert\"}")
.expectNext("{\"id\":2,\"name\":\"Raide\"}")
.expectNext("{\"id\":3,\"name\":\"Ford\"}")
.expectComplete()
.verify();
}

Loading…
Cancel
Save