diff --git a/src/org/redkale/convert/ArrayDecoder.java b/src/org/redkale/convert/ArrayDecoder.java index 4af0253e1..940bedd50 100644 --- a/src/org/redkale/convert/ArrayDecoder.java +++ b/src/org/redkale/convert/ArrayDecoder.java @@ -91,6 +91,7 @@ public class ArrayDecoder implements Decodeable { int startPosition = in.position(); while (hasNext(in, member, startPosition, contentLength, first)) { Reader itemReader = getItemReader(in, member, first); + if (itemReader == null) break; result.add(readMemberValue(itemReader, member, first)); first = false; } diff --git a/src/org/redkale/convert/CollectionDecoder.java b/src/org/redkale/convert/CollectionDecoder.java index ad87fb639..2bb36bbf3 100644 --- a/src/org/redkale/convert/CollectionDecoder.java +++ b/src/org/redkale/convert/CollectionDecoder.java @@ -91,6 +91,7 @@ public class CollectionDecoder implements Decodeable> { int startPosition = in.position(); while (hasNext(in, member, startPosition, contentLength, first)) { Reader itemReader = getItemReader(in, member, first); + if (itemReader == null) break; result.add(readMemberValue(itemReader, member, first)); first = false; } diff --git a/src/org/redkale/convert/MapDecoder.java b/src/org/redkale/convert/MapDecoder.java index fccf625d9..e5d6fb552 100644 --- a/src/org/redkale/convert/MapDecoder.java +++ b/src/org/redkale/convert/MapDecoder.java @@ -104,6 +104,7 @@ public class MapDecoder implements Decodeable> { int startPosition = in.position(); while (hasNext(in, member, startPosition, contentLength, first)) { Reader entryReader = getEntryReader(in, member, first); + if (entryReader == null) break; K key = readKeyMember(entryReader, member, first); entryReader.readBlank(); V value = readValueMember(entryReader, member, first); diff --git a/src/org/redkale/convert/StreamDecoder.java b/src/org/redkale/convert/StreamDecoder.java index 8126bbd85..7c07c4b02 100644 --- a/src/org/redkale/convert/StreamDecoder.java +++ b/src/org/redkale/convert/StreamDecoder.java @@ -87,6 +87,7 @@ public class StreamDecoder implements Decodeable> { int startPosition = in.position(); while (hasNext(in, member, startPosition, contentLength, first)) { Reader itemReader = getItemReader(in, member, first); + if (itemReader == null) break; result.add(readMemberValue(itemReader, member, first)); first = false; }