Uploaded image for project: 'mdsal'
  1. mdsal
  2. MDSAL-276

binding-data-codec does not work with boolean type using typedef

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Duplicate
    • None
    • None
    • None
    • None
    • Operating System: All
      Platform: All

    • 8901

    Description

      for example
      if the yang is :
      container default-policy{
      leaf action {
      type boolean;
      }
      }

      then I call toNormalizedNode(final InstanceIdentifier<T> path, final T data), it works normal.
      But if the yang is :
      typedef policy-logging-flag

      { description "false-disable,true-enable"; type boolean; }

      container default-policy{
      leaf action {
      type policy-logging-flag;
      }
      }
      I call toNormalizedNode(final InstanceIdentifier<T> path, final T data), it would throw abnormal:
      Caused by: java.lang.IllegalStateException: Unable to find type for child node AbsoluteSchemaPath

      {path=[(urn:huawei:yang:huawei-ac-nes?revision=2016-03-04)inventory-cfg, (urn:huawei:yang:huawei-ac-nes?revision=2016-03-04)nes, (urn:huawei:yang:huawei-ac-nes?revision=2016-03-04)ne, (urn:huawei:params:xml:ns:yang:huawei-security-policy?revision=2017-04-15)sec-policy, (urn:huawei:params:xml:ns:yang:huawei-security-policy?revision=2017-04-15)vsys, (urn:huawei:params:xml:ns:yang:huawei-security-policy?revision=2017-04-15)default-policy, (urn:huawei:params:xml:ns:yang:huawei-security-policy?revision=2017-04-15)action]}

      . Expected child nodes:

      {getGlobalIp=GeneratedTransferObject [packageName=org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.huawei.security.policy.rev170415.sec.policy.rule._default, name=GlobalIp, comment=null, annotations=[], implements=[Type (org.opendaylight.yangtools.yang.binding.ChildOf), Type (org.opendaylight.yangtools.yang.binding.Augmentable)], enclosedTypes=[], constants=[Constant [type=Type (org.opendaylight.yangtools.yang.common.QName), name=QNAME, value=org.opendaylight.yangtools.yang.common.QName.cachedReference(org.opendaylight.yangtools.yang.common.QName.create("urn:huawei:params:xml:ns:yang:huawei-security-policy","2017-04-15","global-ip")), definingType=org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.huawei.security.policy.rev170415.sec.policy.rule._default.GlobalIp]], enumerations=[], properties=, methods=[MethodSignatureBuilderImpl [name=isDestination, returnType=Type (java.lang.Boolean), parameters=[], annotationBuilders=[], comment=Enable or disable destination global ip. True means enable and false means disable.]]], getPolicylog=org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.huawei.security.policy.rev170415.PolicyLoggingFlag, getAction=org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.huawei.security.policy.rev170415.ActionPolicyFlag, getSessionlog=org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.huawei.security.policy.rev170415.SessionLoggingFlag}

      at org.opendaylight.yangtools.binding.data.codec.gen.impl.DataNodeContainerSerializerSource.emitBody(DataNodeContainerSerializerSource.java:149)
      at org.opendaylight.yangtools.binding.data.codec.gen.impl.DataNodeContainerSerializerSource.getSerializerBody(DataNodeContainerSerializerSource.java:80)
      at org.opendaylight.yangtools.binding.data.codec.gen.impl.AbstractStreamWriterGenerator$1.get(AbstractStreamWriterGenerator.java:203)
      at org.opendaylight.yangtools.binding.data.codec.gen.impl.AbstractStreamWriterGenerator$1.get(AbstractStreamWriterGenerator.java:200)
      at org.opendaylight.yangtools.util.ClassLoaderUtils.withClassLoader(ClassLoaderUtils.java:53)
      at org.opendaylight.yangtools.binding.data.codec.gen.impl.AbstractStreamWriterGenerator.generateEmitter0(AbstractStreamWriterGenerator.java:200)
      at org.opendaylight.yangtools.binding.data.codec.gen.impl.AbstractStreamWriterGenerator.access$300(AbstractStreamWriterGenerator.java:46)
      at org.opendaylight.yangtools.binding.data.codec.gen.impl.AbstractStreamWriterGenerator$SerializerImplementationLoader.generateSerializer(AbstractStreamWriterGenerator.java:136)
      at org.opendaylight.yangtools.binding.data.codec.gen.impl.AbstractStreamWriterGenerator$SerializerImplementationLoader.load(AbstractStreamWriterGenerator.java:124)
      at org.opendaylight.yangtools.binding.data.codec.gen.impl.AbstractStreamWriterGenerator$SerializerImplementationLoader.load(AbstractStreamWriterGenerator.java:102)
      at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)
      at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)
      at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
      at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
      ... 177 more

      This could be a bug, Should we work it out?

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              Unassigned Unassigned
              zhuweisheng@huawei.com zhuweisheng
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: