Uploaded image for project: 'yangtools'
  1. yangtools
  2. YANGTOOLS-1471

Fail to process unsupported augment statement

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Medium Medium
    • 8.0.10, 9.0.6, 10.0.3
    • 10.0.1, 8.0.9, 9.0.5
    • parser
    • None

      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
      

            rovarga Robert Varga
            sangwookha Sangwook Ha
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: