diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/json/JsonValueWriterTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/json/JsonValueWriterTests.java index 10ebb94ce10..d38db8d9889 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/json/JsonValueWriterTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/json/JsonValueWriterTests.java @@ -296,6 +296,38 @@ class JsonValueWriterTests { "JSON nesting depth (129) exceeds maximum depth of 128 (current path: [0][0][0][0][0][0][0][0][0][0][0][0]"); } + @Test + void shouldAllowStartingObjectWhenCurrentDepthIsMaxDepth() { + StringBuilder out = new StringBuilder(); + JsonValueWriter writer = new JsonValueWriter(out, 2); + + writer.start(Series.OBJECT); + writer.start(Series.OBJECT); + writer.start(Series.OBJECT); + + writer.end(Series.OBJECT); + writer.end(Series.OBJECT); + writer.end(Series.OBJECT); + + assertThat(out).hasToString("{{{}}}"); + } + + @Test + void shouldAllowStartingArrayWhenCurrentDepthIsMaxDepth() { + StringBuilder out = new StringBuilder(); + JsonValueWriter writer = new JsonValueWriter(out, 2); + + writer.start(Series.ARRAY); + writer.start(Series.ARRAY); + writer.start(Series.ARRAY); + + writer.end(Series.ARRAY); + writer.end(Series.ARRAY); + writer.end(Series.ARRAY); + + assertThat(out).hasToString("[[[]]]"); + } + private String write(V value) { return doWrite((valueWriter) -> valueWriter.write(value)); }