Parsing of Yang sources with a deviated case node fails if the case node was created with augmentation without explicit case statement.
For example, parsing of the following two modules fails.
module orig { namespace "urn:orig"; prefix orig; container foo { choice bar { leaf bar1 { type string; } } } augment /foo/bar { leaf bar2 { type string; } } }
module deviate { namespace "urn:deviate"; prefix dev; import orig { prefix orig; } deviation /orig:foo/orig:bar/orig:bar2 { deviate not-supported; } }
Error message says that the case node is not found:
16:34:32.334 [main] ERROR org.opendaylight.yangtools.yang.parser.stmt.reactor. BuildGlobalContext - Failed to parse YANG from source SourceSpecificContext [source=YangStatementStreamSource{identifier=RevisionSourceIdentifier [name=deviate]}, current=EFFECTIVE_MODEL, finished=FULL_DECLARATION] org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException: Deviation target 'Absolute{qnames=[(urn:orig)foo, bar, bar2]}' not found. [at /root/OpenDaylight/yangtools/parser/yang-parser-rfc7950/target/test-classes/bugs/YT1408/aug-choice-deviate-case/ deviate.yang:9:5] at org.opendaylight.yangtools.yang.parser.rfc7950@8.0.2-SNAPSHOT/org.opendaylight. yangtools.yang.parser.rfc7950.stmt.deviate.AbstractDeviateStatementSupport$1. prerequisiteFailed(AbstractDeviateStatementSupport.java:175) at org.opendaylight.yangtools.yang.parser.reactor@8.0.2-SNAPSHOT/org.opendaylight. yangtools.yang.parser.stmt.reactor.ModifierImpl.failModifier(ModifierImpl.java:87) at org.opendaylight.yangtools.yang.parser.reactor@8.0.2-SNAPSHOT/org.opendaylight. yangtools.yang.parser.stmt.reactor.SourceSpecificContext. failModifiers(SourceSpecificContext.java:383) at org.opendaylight.yangtools.yang.parser.reactor@8.0.2-SNAPSHOT/org.opendaylight. yangtools.yang.parser.stmt.reactor.BuildGlobalContext. addSourceExceptions(BuildGlobalContext.java:307) at org.opendaylight.yangtools.yang.parser.reactor@8.0.2-SNAPSHOT/org.opendaylight. yangtools.yang.parser.stmt.reactor.BuildGlobalContext. completePhaseActions(BuildGlobalContext.java:398) at org.opendaylight.yangtools.yang.parser.reactor@8.0.2-SNAPSHOT/org.opendaylight. yangtools.yang.parser.stmt.reactor.BuildGlobalContext.executePhases(BuildGlobalContext. java:199) at org.opendaylight.yangtools.yang.parser.reactor@8.0.2-SNAPSHOT/org.opendaylight. yangtools.yang.parser.stmt.reactor.BuildGlobalContext.buildEffective(BuildGlobalContext. java:210)