Parsing of a data model with an augment statement with if-feature sub-statement fails if
- the feature is not supported
- the augment statement targets a node defined with a nested grouping and dependent on the feature
For example, parsing of the following example fails when bar-feature is not supported:
module foo { namespace "urn:foo"; prefix "foo"; feature bar-feature; grouping baz-group { container baz; } grouping bar-group { container bar { if-feature bar-feature; uses baz-group; } } container foo { uses bar-group; } augment "/foo/bar/baz" { if-feature bar-feature; leaf baz-leaf { type string; } } }
Parser complains that /foo/bar/baz does not exist but it shouldn't attempt to augment the path:
Caused by: org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException: Augment target 'Absolute{qnames=[(urn:foo)foo, bar, baz]}' not found [at /volumes/OpenDaylight/yangtools/parser/yang-parser-rfc7950/target/test-classes/bugs/YT1471/augment-if-feature-nested-grouping/foo.yang:22:3] at org.opendaylight.yangtools.yang.parser.rfc7950@10.0.2-SNAPSHOT/org.opendaylight.yangtools.yang.parser.rfc7950.stmt.augment.AugmentInferenceAction.prerequisiteFailed(AugmentInferenceAction.java:109) at org.opendaylight.yangtools.yang.parser.reactor@10.0.2-SNAPSHOT/org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl.failModifier(ModifierImpl.java:86) at org.opendaylight.yangtools.yang.parser.reactor@10.0.2-SNAPSHOT/org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext.failModifiers(SourceSpecificContext.java:375) at org.opendaylight.yangtools.yang.parser.reactor@10.0.2-SNAPSHOT/org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.addSourceExceptions(BuildGlobalContext.java:307) ... 51 more