[NETCONF-384] FilterContentValidator.getKeyValues creates invalid YII key values Created: 27/Mar/17  Updated: 15/Mar/19  Resolved: 03/May/17

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

Type: Bug
Reporter: Marek Gradzki Assignee: Miroslav Kovac
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 8084

 Description   

FilterContentValidator always creates string key values:

final Optional<String> keyValue = childElements.get().getOnlyTextContentOptionally();
if (keyValue.isPresent())

{ keys.put(qName, keyValue.get()); }

...

as a consequence such YII cannot be translated to II using mdsal's BindingToNormalizedNodeCodec (issue similar to https://bugs.opendaylight.org/show_bug.cgi?id=7759):

2017-03-27 11:44:47.558 CEST [netconf-netty-1] ERROR o.o.n.i.o.NetconfOperationRouterImpl - Unexpected exception during netconf operation execution
java.lang.ClassCastException: java.lang.String cannot be cast to org.opendaylight.yangtools.yang.common.QName
at org.opendaylight.yangtools.binding.data.codec.impl.IdentityCodec.deserialize(IdentityCodec.java:17) ~[mdsal-binding-dom-codec-0.9.3-SNAPSHOT.jar:na]
at org.opendaylight.yangtools.binding.data.codec.impl.ValueContext.deserialize(ValueContext.java:50) ~[mdsal-binding-dom-codec-0.9.3-SNAPSHOT.jar:na]
at org.opendaylight.yangtools.binding.data.codec.impl.IdentifiableItemCodec.deserialize(IdentifiableItemCodec.java:101) ~[mdsal-binding-dom-codec-0.9.3-SNAPSHOT.jar:na]
at org.opendaylight.yangtools.binding.data.codec.impl.IdentifiableItemCodec.deserialize(IdentifiableItemCodec.java:30) ~[mdsal-binding-dom-codec-0.9.3-SNAPSHOT.jar:na]
at org.opendaylight.yangtools.binding.data.codec.impl.KeyedListNodeCodecContext.getBindingPathArgument(KeyedListNodeCodecContext.java:73) ~[mdsal-binding-dom-codec-0.9.3-SNAPSHOT.jar:na]
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext.getCodecContextNode(BindingCodecContext.java:169) ~[mdsal-binding-dom-codec-0.9.3-SNAPSHOT.jar:na]
at org.opendaylight.yangtools.binding.data.codec.impl.InstanceIdentifierCodec.deserialize(InstanceIdentifierCodec.java:36) ~[mdsal-binding-dom-codec-0.9.3-SNAPSHOT.jar:na]
at org.opendaylight.yangtools.binding.data.codec.impl.InstanceIdentifierCodec.deserialize(InstanceIdentifierCodec.java:19) ~[mdsal-binding-dom-codec-0.9.3-SNAPSHOT.jar:na]
at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry.fromYangInstanceIdentifier(BindingNormalizedNodeCodecRegistry.java:92) ~[mdsal-binding-dom-codec-0.9.3-SNAPSHOT.jar:na]
at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.fromYangInstanceIdentifier(BindingToNormalizedNodeCodec.java:171) ~[sal-binding-broker-impl-1.4.3-SNAPSHOT.jar:na]

Issue is present in Carbon (logs are for boron-SR3 with https://git.opendaylight.org/gerrit/#/c/53678/)

It applies only to netconf get/get-config.
Edit-config is fine (uses DomToNormalizedNodeParserFactory)
Restconf get/put are also fine (RestCodec is used).



 Comments   
Comment by Viera Zelcamova [ 28/Mar/17 ]

agreed on Boron SR4 and Carbon SR1

Comment by Miroslav Kovac [ 29/Mar/17 ]

fix - https://git.opendaylight.org/gerrit/#/c/53996/

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