mirror of
https://github.com/fankes/moshi.git
synced 2025-10-19 16:09: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) {
|
||||
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 {
|
||||
|
@@ -101,8 +101,7 @@ final class JsonValueReader extends JsonReader {
|
||||
}
|
||||
|
||||
@Override public boolean hasNext() throws IOException {
|
||||
// TODO(jwilson): this is consistent with BufferedSourceJsonReader but it doesn't make sense.
|
||||
if (stackSize == 0) return true;
|
||||
if (stackSize == 0) return false;
|
||||
|
||||
Object peeked = stack[stackSize - 1];
|
||||
return !(peeked instanceof Iterator) || ((Iterator) peeked).hasNext();
|
||||
|
@@ -979,4 +979,10 @@ public final class JsonReaderTest {
|
||||
}
|
||||
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