From 36cacf31b7ee0cc3ccaa68c1560d3dec0e15ced2 Mon Sep 17 00:00:00 2001 From: lmj798 <2757400745@qq.com> Date: Mon, 9 Mar 2026 22:05:54 +0800 Subject: [PATCH] Add boundary tests for JsonTreeWriter.endArray() error handling (#2988) * Add boundary tests for JsonTreeWriter.endArray() error handling * Update JsonTreeWriterTest.java --- .../internal/bind/JsonTreeWriterTest.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java b/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java index 97dc2e56c..0600a7ef0 100644 --- a/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java +++ b/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java @@ -281,4 +281,25 @@ public final class JsonTreeWriterTest { "getSerializeNulls()"); MoreAsserts.assertOverridesMethods(JsonWriter.class, JsonTreeWriter.class, ignoredMethods); } + + @Test + public void testEndArrayOnEmptyStackThrows() { + JsonTreeWriter writer = new JsonTreeWriter(); + assertThrows(IllegalStateException.class, () -> writer.endArray()); + } + + @Test + public void testEndArrayWithPendingNameThrows() throws IOException { + JsonTreeWriter writer = new JsonTreeWriter(); + writer.beginObject(); + writer.name("test"); + assertThrows(IllegalStateException.class, () -> writer.endArray()); + } + + @Test + public void testEndArrayWhenStackTopIsNotArrayThrows() throws IOException { + JsonTreeWriter writer = new JsonTreeWriter(); + writer.beginObject(); + assertThrows(IllegalStateException.class, () -> writer.endArray()); + } }