-
Bug
-
Resolution: Done
-
Medium
-
None
In ietf-te-types yang model there is a type definition “te-common-status” which type is enumeration. This type definition is used to declare 2 another type definitions:
typedef te-oper-status { type te-common-status; description "Defines a type representing the operational status of a TE resource."; } typedef te-admin-status { type te-common-status; description "Defines a type representing the administrative status of a TE resource."; }
The generated classes from te-oper-status (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev200610. TeOperStatus) and te-admin-status (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.types.rev200610. TeAdminStatus) are empty Class. Shouldn’t they be Enum instead ? I ask this question because when I try to serialize object using them I got the following exception
Exception in thread "main" java.lang.IllegalArgumentException
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:128)
at org.opendaylight.mdsal.binding.dom.codec.impl.EnumerationCodec.loader(EnumerationCodec.java:38)
at org.opendaylight.mdsal.binding.dom.codec.impl.ValueTypeCodec.getCodecLoader(ValueTypeCodec.java:87)
at org.opendaylight.mdsal.binding.dom.codec.impl.ValueTypeCodec.getCodecFor(ValueTypeCodec.java:65)
at org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext.getCodecForBindingClass(BindingCodecContext.java:448)
at org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext.getCodec(BindingCodecContext.java:421)
at org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext.getLeafNodesUsingReflection(BindingCodecContext.java:371)
at org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext.getLeafNodes(BindingCodecContext.java:356)
at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectCodecContext.<init>(DataObjectCodecContext.java:112)
at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectCodecContext.<init>(DataObjectCodecContext.java:104)
at org.opendaylight.mdsal.binding.dom.codec.impl.ContainerNodeCodecContext.<init>(ContainerNodeCodecContext.java:20)
at org.opendaylight.mdsal.binding.dom.codec.impl.DataContainerCodecPrototype.createInstance(DataContainerCodecPrototype.java:261)
at org.opendaylight.mdsal.binding.dom.codec.impl.DataContainerCodecPrototype.loadInstance(DataContainerCodecPrototype.java:245)
at org.opendaylight.mdsal.binding.dom.codec.impl.DataContainerCodecPrototype.get(DataContainerCodecPrototype.java:238)
at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectCodecContext.streamChild(DataObjectCodecContext.java:266)
at org.opendaylight.mdsal.binding.dom.codec.impl.BindingToNormalizedStreamWriter.enter(BindingToNormalizedStreamWriter.java:80)
at org.opendaylight.mdsal.binding.dom.codec.impl.BindingToNormalizedStreamWriter.startContainerNode(BindingToNormalizedStreamWriter.java:179)
at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev200806.networks.network.link.Te$$$streamer.serialize(Unknown Source)
at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectStreamer.streamContainer(DataObjectStreamer.java:90)
at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.te.topology.rev200806.Link1$$$streamer.serialize(Unknown Source)
at org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext$DataObjectSerializerProxy.serialize(BindingCodecContext.java:122)
at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectStreamer.emitAugmentation(DataObjectStreamer.java:176)
at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectStreamer.streamAugmentations(DataObjectStreamer.java:63)
at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link$$$streamer.serialize(Unknown Source)
at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectStreamer.commonStreamList(DataObjectStreamer.java:153)
at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectStreamer.streamMap(DataObjectStreamer.java:133)
at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Network1$$$streamer.serialize(Unknown Source)
at org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext$DataObjectSerializerProxy.serialize(BindingCodecContext.java:122)
at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectStreamer.emitAugmentation(DataObjectStreamer.java:176)
at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectStreamer.streamAugmentations(DataObjectStreamer.java:63)
at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network$$$streamer.serialize(Unknown Source)
at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectStreamer.commonStreamList(DataObjectStreamer.java:153)
at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectStreamer.streamMap(DataObjectStreamer.java:133)
at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks$$$streamer.serialize(Unknown Source)
at org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext$DataObjectSerializerProxy.serialize(BindingCodecContext.java:122)
at org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext.toNormalizedNode(BindingCodecContext.java:506)
at org.opendaylight.mdsal.binding.dom.codec.spi.ForwardingBindingDOMCodecServices.toNormalizedNode(ForwardingBindingDOMCodecServices.java:67)
at org.test.Serialization.serialize(Serialization.java:136)
at org.test.Serialization.main(Serialization.java:147)
I have attached to this mail a code sample to reproduce the problem.