Fix JsonObjectDecoder with '[' starting chunk
Issue: SPR-15013
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user