[YANGTOOLS-524] Shorthand case statement not working Created: 05/Oct/15  Updated: 10/Apr/22  Resolved: 27/Oct/15

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

Type: Bug
Reporter: Jakub Morvay Assignee: Martin Ciglan
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File file_4414.txt    
External issue ID: 4414

 Description   

If I use a shorthand version of a case statement (in choice statement server-or-user, case server), as described in https://tools.ietf.org/html/rfc6020#section-7.9.2, and try to write generated class to normalized node I get this exception:

org.opendaylight.yangtools.binding.data.codec.impl.IncorrectNestingException: Supplied class interface org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.changed.by.parms.changed.by.server.or.user.Server is not valid case
at org.opendaylight.yangtools.binding.data.codec.impl.IncorrectNestingException.create(IncorrectNestingException.java:28)[94:org.opendaylight.mdsal.binding-dom-codec:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.binding.data.codec.impl.DataContainerCodecContext.childNonNull(DataContainerCodecContext.java:180)[94:org.opendaylight.mdsal.binding-dom-codec:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.binding.data.codec.impl.ChoiceNodeCodecContext.streamChild(ChoiceNodeCodecContext.java:111)[94:org.opendaylight.mdsal.binding-dom-codec:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.binding.data.codec.impl.BindingToNormalizedStreamWriter.enter(BindingToNormalizedStreamWriter.java:67)[94:org.opendaylight.mdsal.binding-dom-codec:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.binding.data.codec.impl.BindingToNormalizedStreamWriter.startCase(BindingToNormalizedStreamWriter.java:134)[94:org.opendaylight.mdsal.binding-dom-codec:0.8.0.SNAPSHOT]
at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.changed.by.parms.changed.by.server.or.user.Server$StreamWriter.serialize(DataObjectSerializerPrototype.java)[118:org.opendaylight.netconf.ietf-netconf-notifications:1.0.0.SNAPSHOT]
at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry$DataObjectSerializerProxy.serialize(BindingNormalizedNodeCodecRegistry.java:295)[94:org.opendaylight.mdsal.binding-dom-codec:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.binding.data.codec.util.ChoiceDispatchSerializer.serialize(ChoiceDispatchSerializer.java:47)[94:org.opendaylight.mdsal.binding-dom-codec:0.8.0.SNAPSHOT]
at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.changed.by.parms.ChangedBy$StreamWriter.serialize(DataObjectSerializerPrototype.java)[118:org.opendaylight.netconf.ietf-netconf-notifications:1.0.0.SNAPSHOT]
at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange$StreamWriter.serialize(DataObjectSerializerPrototype.java)[118:org.opendaylight.netconf.ietf-netconf-notifications:1.0.0.SNAPSHOT]
at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry$DataObjectSerializerProxy.serialize(BindingNormalizedNodeCodecRegistry.java:295)[94:org.opendaylight.mdsal.binding-dom-codec:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry.toNormalizedNodeNotification(BindingNormalizedNodeCodecRegistry.java:125)[94:org.opendaylight.mdsal.binding-dom-codec:0.8.0.SNAPSHOT]
at org.opendaylight.netconf.notifications.impl.ops.NotificationsTransformUtil.transform(NotificationsTransformUtil.java:99)[132:org.opendaylight.netconf.notifications-impl:1.0.0.SNAPSHOT]
at org.opendaylight.netconf.notifications.impl.ops.NotificationsTransformUtil.transform(NotificationsTransformUtil.java:91)[132:org.opendaylight.netconf.notifications-impl:1.0.0.SNAPSHOT]
at org.opendaylight.netconf.notifications.impl.NetconfNotificationManager$BaseNotificationPublisherReg.serializeNotification(NetconfNotificationManager.java:259)[132:org.opendaylight.netconf.notifications-impl:1.0.0.SNAPSHOT]
at org.opendaylight.netconf.notifications.impl.NetconfNotificationManager$BaseNotificationPublisherReg.onCapabilityChanged(NetconfNotificationManager.java:264)[132:org.opendaylight.netconf.notifications-impl:1.0.0.SNAPSHOT]

However, if I use the normal version of case statement serialization to normalized node is successful.



 Comments   
Comment by Jakub Morvay [ 05/Oct/15 ]

Attachment file_4414.txt has been added with description: YANG model

Comment by Martin Ciglan [ 12/Oct/15 ]

fix pushed:

https://git.opendaylight.org/gerrit/#/c/28268/

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