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

Leafref path resolution fails to account for choice/case nodes

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Medium Medium
    • 5.0.0, 4.0.8, 3.0.11
    • None
    • model-util
    • None

      for module:

      module a {
        yang-version 1.1;
        namespace "a";
        prefix a;
        container foo {
          list scheduler-node {
            key "name";
            leaf name {
              type string;
            }
            choice children-type {
              case scheduler-node {
                list child-scheduler-nodes {
                  key "name";
                  leaf name {
                    type leafref {
                        path '../../../a:scheduler-node/'
                         + 'a:name';
                    }
                  }
                }
              }
            }
          }
        }
      }

      AbstractTypeProvider.provideTypeForLeafref() will fail with:

      java.lang.IllegalArgumentException: Failed to find leafref target: ../../../a:scheduler-node/a:name in module mdsal532 (QNameModule{ns=a})	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:459)
      	at org.opendaylight.mdsal.binding.yang.types.AbstractTypeProvider.provideTypeForLeafref(AbstractTypeProvider.java:553)
      	at org.opendaylight.mdsal.binding.yang.types.AbstractTypeProvider.javaTypeForLeafrefOrIdentityRef(AbstractTypeProvider.java:301)
      	at org.opendaylight.mdsal.binding.yang.types.AbstractTypeProvider.javaTypeForSchemaDefinitionType(AbstractTypeProvider.java:198)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.resolveLeafSchemaNodeAsMethod(AbstractTypeGenerator.java:1441)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.addSchemaNodeToListBuilders(AbstractTypeGenerator.java:1840)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.listToGenType(AbstractTypeGenerator.java:346)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.addSchemaNodeToBuilderAsMethod(AbstractTypeGenerator.java:1145)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.resolveDataSchemaNodes(AbstractTypeGenerator.java:1092)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.generateTypesFromChoiceCases(AbstractTypeGenerator.java:1266)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.choiceToGeneratedType(AbstractTypeGenerator.java:1184)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.addSchemaNodeToListBuilders(AbstractTypeGenerator.java:1855)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.listToGenType(AbstractTypeGenerator.java:346)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.addSchemaNodeToBuilderAsMethod(AbstractTypeGenerator.java:1145)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.resolveDataSchemaNodes(AbstractTypeGenerator.java:1092)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.containerToGenType(AbstractTypeGenerator.java:308)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.addSchemaNodeToBuilderAsMethod(AbstractTypeGenerator.java:1143)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.resolveDataSchemaNodes(AbstractTypeGenerator.java:1092)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.moduleToGenTypes(AbstractTypeGenerator.java:248)
      	at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.<init>(AbstractTypeGenerator.java:205)
      	at org.opendaylight.mdsal.binding.generator.impl.CodegenTypeGenerator.<init>(CodegenTypeGenerator.java:33)
      	at org.opendaylight.mdsal.binding.generator.impl.DefaultBindingGenerator.generateFor(DefaultBindingGenerator.java:76)
      	at org.opendaylight.mdsal.binding.generator.impl.DefaultBindingGenerator.generateFor(DefaultBindingGenerator.java:43)

            miro.kovac Miroslav Kovac
            miro.kovac Miroslav Kovac
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: