Browse Source

Fix JsonObjectDecoder with '[' starting chunk

Issue: SPR-15013
pull/1269/head
Sebastien Deleuze 9 years ago
parent
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

3
spring-web/src/main/java/org/springframework/http/codec/json/JsonObjectDecoder.java

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

13
spring-web/src/test/java/org/springframework/http/codec/json/JsonObjectDecoderTests.java

@ -106,6 +106,19 @@ public class JsonObjectDecoderTests extends AbstractDataBufferAllocatingTestCase
.expectNext("{\"foo\": \"baz\"}") .expectNext("{\"foo\": \"baz\"}")
.expectComplete() .expectComplete()
.verify(); .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