mirror of
https://github.com/fankes/moshi.git
synced 2025-10-20 00:19:21 +08:00
Fix hasNext to return false at document end.
This commit is contained in:
@@ -162,7 +162,7 @@ final class JsonUtf8Reader extends JsonReader {
|
|||||||
if (p == PEEKED_NONE) {
|
if (p == PEEKED_NONE) {
|
||||||
p = doPeek();
|
p = doPeek();
|
||||||
}
|
}
|
||||||
return p != PEEKED_END_OBJECT && p != PEEKED_END_ARRAY;
|
return p != PEEKED_END_OBJECT && p != PEEKED_END_ARRAY && p != PEEKED_EOF;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public Token peek() throws IOException {
|
@Override public Token peek() throws IOException {
|
||||||
|
@@ -101,8 +101,7 @@ final class JsonValueReader extends JsonReader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override public boolean hasNext() throws IOException {
|
@Override public boolean hasNext() throws IOException {
|
||||||
// TODO(jwilson): this is consistent with BufferedSourceJsonReader but it doesn't make sense.
|
if (stackSize == 0) return false;
|
||||||
if (stackSize == 0) return true;
|
|
||||||
|
|
||||||
Object peeked = stack[stackSize - 1];
|
Object peeked = stack[stackSize - 1];
|
||||||
return !(peeked instanceof Iterator) || ((Iterator) peeked).hasNext();
|
return !(peeked instanceof Iterator) || ((Iterator) peeked).hasNext();
|
||||||
|
@@ -979,4 +979,10 @@ public final class JsonReaderTest {
|
|||||||
}
|
}
|
||||||
assertThat(reader.nextInt()).isEqualTo(1);
|
assertThat(reader.nextInt()).isEqualTo(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test public void emptyDocumentHasNextReturnsFalse() throws IOException {
|
||||||
|
JsonReader reader = newReader("1");
|
||||||
|
reader.readJsonValue();
|
||||||
|
assertThat(reader.hasNext()).isFalse();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user