From be6f3eb2affcbca1d41a1d396870e052cbbb3bd5 Mon Sep 17 00:00:00 2001 From: Eric Cochran Date: Sun, 17 Feb 2019 17:00:29 -0800 Subject: [PATCH] Unconditionally close the peeked JsonReader. (#810) It doesn't have an effect now, but this is for the future when closing the peeked source also clears buffers. --- .../moshi/adapters/PolymorphicJsonAdapterFactory.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/adapters/src/main/java/com/squareup/moshi/adapters/PolymorphicJsonAdapterFactory.java b/adapters/src/main/java/com/squareup/moshi/adapters/PolymorphicJsonAdapterFactory.java index 73e64b6..1088d8b 100644 --- a/adapters/src/main/java/com/squareup/moshi/adapters/PolymorphicJsonAdapterFactory.java +++ b/adapters/src/main/java/com/squareup/moshi/adapters/PolymorphicJsonAdapterFactory.java @@ -235,7 +235,12 @@ public final class PolymorphicJsonAdapterFactory implements JsonAdapter.Facto @Override public Object fromJson(JsonReader reader) throws IOException { JsonReader peeked = reader.peekJson(); peeked.setFailOnUnknown(false); - int labelIndex = labelIndex(peeked); + int labelIndex; + try { + labelIndex = labelIndex(peeked); + } finally { + peeked.close(); + } if (labelIndex == -1) { reader.skipValue(); return defaultValue; @@ -262,7 +267,6 @@ public final class PolymorphicJsonAdapterFactory implements JsonAdapter.Facto + reader.nextString() + "'. Register a subtype for this label."); } - reader.close(); return labelIndex; }