[MDSAL-276] binding-data-codec does not work with boolean type using typedef Created: 28/Jul/17  Updated: 09/Mar/18  Resolved: 28/Jul/17

Status: Resolved
Project: mdsal
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: zhuweisheng Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issue Links:
Duplicate
duplicates MDSAL-277 binding-data-codec does not work with... Resolved
External issue ID: 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?


Generated at Wed Feb 07 20:09:20 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.