diff --git a/src/main/java/com/fasterxml/jackson/dataformat/xml/deser/XmlReadContext.java b/src/main/java/com/fasterxml/jackson/dataformat/xml/deser/XmlReadContext.java index bfef7d4db..8c57cfe4f 100644 --- a/src/main/java/com/fasterxml/jackson/dataformat/xml/deser/XmlReadContext.java +++ b/src/main/java/com/fasterxml/jackson/dataformat/xml/deser/XmlReadContext.java @@ -66,6 +66,7 @@ public XmlReadContext(XmlReadContext parent, int type, int lineNr, int colNr) _lineNr = lineNr; _columnNr = colNr; _index = -1; + _nestingDepth = parent == null ? 0 : parent._nestingDepth + 1; } protected final void reset(int type, int lineNr, int colNr) diff --git a/src/test/java/com/fasterxml/jackson/dataformat/xml/stream/XmlParserTest.java b/src/test/java/com/fasterxml/jackson/dataformat/xml/stream/XmlParserTest.java index c19d58868..12a8fcb1e 100644 --- a/src/test/java/com/fasterxml/jackson/dataformat/xml/stream/XmlParserTest.java +++ b/src/test/java/com/fasterxml/jackson/dataformat/xml/stream/XmlParserTest.java @@ -30,13 +30,19 @@ public void testSimplest() throws Exception // -> "{\"leaf\":\"abc\"}" try (JsonParser p = _xmlMapper.createParser(XML)) { + assertEquals(0, p.getParsingContext().getNestingDepth()); assertToken(JsonToken.START_OBJECT, p.nextToken()); + assertEquals(1, p.getParsingContext().getNestingDepth()); assertToken(JsonToken.FIELD_NAME, p.nextToken()); assertEquals("leaf", p.currentName()); + assertEquals(1, p.getParsingContext().getNestingDepth()); assertToken(JsonToken.VALUE_STRING, p.nextToken()); assertEquals("abc", p.getText()); + assertEquals(1, p.getParsingContext().getNestingDepth()); assertToken(JsonToken.END_OBJECT, p.nextToken()); + assertEquals(0, p.getParsingContext().getNestingDepth()); assertNull(p.nextToken()); + assertEquals(0, p.getParsingContext().getNestingDepth()); } }