Skip to content

Commit 47aa60d

Browse files
committed
Merge pull request #49662 from Joowon-Seo
* gh-49662: Polish "Add boundary tests for JsonValueWriter max nesting depth" Add boundary tests for JsonValueWriter max nesting depth Closes gh-49662
2 parents 4cd1b02 + 3717468 commit 47aa60d

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/json/JsonValueWriterTests.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,32 @@ void illegalStateExceptionShouldBeThrownWhenIterableExceededNestingDepth() {
296296
"JSON nesting depth (129) exceeds maximum depth of 128 (current path: [0][0][0][0][0][0][0][0][0][0][0][0]");
297297
}
298298

299+
@Test
300+
void shouldAllowStartingObjectWhenCurrentDepthIsMaxDepth() {
301+
StringBuilder out = new StringBuilder();
302+
JsonValueWriter writer = new JsonValueWriter(out, 2);
303+
writer.start(Series.OBJECT);
304+
writer.start(Series.OBJECT);
305+
writer.start(Series.OBJECT);
306+
writer.end(Series.OBJECT);
307+
writer.end(Series.OBJECT);
308+
writer.end(Series.OBJECT);
309+
assertThat(out).hasToString("{{{}}}");
310+
}
311+
312+
@Test
313+
void shouldAllowStartingArrayWhenCurrentDepthIsMaxDepth() {
314+
StringBuilder out = new StringBuilder();
315+
JsonValueWriter writer = new JsonValueWriter(out, 2);
316+
writer.start(Series.ARRAY);
317+
writer.start(Series.ARRAY);
318+
writer.start(Series.ARRAY);
319+
writer.end(Series.ARRAY);
320+
writer.end(Series.ARRAY);
321+
writer.end(Series.ARRAY);
322+
assertThat(out).hasToString("[[[]]]");
323+
}
324+
299325
private <V> String write(V value) {
300326
return doWrite((valueWriter) -> valueWriter.write(value));
301327
}

0 commit comments

Comments
 (0)