<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:16:37 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[NETCONF-1082] Unable to write unkeyed list with RESTCONF PUT request</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-1082</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;Prepared PUT operation in OpenApi for request &quot;/yang-ext:mount/toaster2:lst&apos;&quot; return 500 with error-message &quot;java.lang.IllegalArgumentException: Invalid nesting of data.&quot;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;https://jira.opendaylight.org/secure/attachment/19000/19000_image-2023-07-12-12-37-48-403.png&quot; height=&quot;573&quot; width=&quot;924&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="37103">NETCONF-1082</key>
            <summary>Unable to write unkeyed list with RESTCONF PUT request</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10001">Won&apos;t Do</resolution>
                                        <assignee username="simon0pt">&#352;imon Uku&#353;</assignee>
                                    <reporter username="PeterSuna">Peter Suna</reporter>
                        <labels>
                            <label>pt</label>
                    </labels>
                <created>Wed, 12 Jul 2023 10:38:46 +0000</created>
                <updated>Tue, 8 Aug 2023 14:13:58 +0000</updated>
                            <resolved>Tue, 8 Aug 2023 14:13:05 +0000</resolved>
                                                    <fixVersion>7.0.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="72406" author="petersuna" created="Wed, 19 Jul 2023 11:50:04 +0000"  >&lt;p&gt;I have identified an issue in netconf. This problem can be replicated using the simple model provided in the attachment.&lt;/p&gt;

&lt;p&gt;The issue occurs when a PUT request is sent to data with an unkeyed list. For instance, attempting to send this request to the provided &quot;test.yang&quot; model results in the problem.&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
curl --request PUT &lt;span class=&quot;code-quote&quot;&gt;&apos;http:&lt;span class=&quot;code-comment&quot;&gt;//localhost:8181/rests/data/network-topology:network-topology/topology=topology-netconf/node=36001-sim-device/yang-ext:mount/test5:list&apos;&lt;/span&gt; \
&lt;/span&gt;     --header &lt;span class=&quot;code-quote&quot;&gt;&apos;accept: */*&apos;&lt;/span&gt; \
     --header &lt;span class=&quot;code-quote&quot;&gt;&apos;Content-Type: application/json&apos;&lt;/span&gt; \
     --header &lt;span class=&quot;code-quote&quot;&gt;&apos;Authorization: Basic YWRtaW46YWRtaW4=&apos;&lt;/span&gt; \
     --data &apos;{
        &lt;span class=&quot;code-quote&quot;&gt;&quot;test:list&quot;&lt;/span&gt;: [
            {
                &lt;span class=&quot;code-quote&quot;&gt;&quot;leaf&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;Some leaf&quot;&lt;/span&gt;
            }
        ]
     }&apos;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Issue shown in karaf.log after sending this request pointing that problem could be at this place:&lt;br/&gt;
`NetconfMessageTransformUtil.createEditConfigAnyxml(NetconfMessageTransformUtil.java:325)`&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
13:12:21.481 WARN [qtp1489084574-906] Transaction(PUT) FAILED!
java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Invalid nesting of data.
&#160; &#160; at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:592) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:571) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:111) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.ForwardingFluentFuture.get(ForwardingFluentFuture.java:68) ~[bundleFile:?]
&#160; &#160; at org.opendaylight.restconf.nb.rfc8040.rests.utils.FutureCallbackTx.addCallback(FutureCallbackTx.java:71) ~[bundleFile:?]
&#160; &#160; at org.opendaylight.restconf.nb.rfc8040.rests.utils.PutDataTransactionUtil.putData(PutDataTransactionUtil.java:73) ~[bundleFile:?]
&#160; &#160; at org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfDataServiceImpl.putData(RestconfDataServiceImpl.java:227) ~[bundleFile:?]
&#160; &#160; at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
&#160; &#160; at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
&#160; &#160; at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
&#160; &#160; at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
&#160; &#160; at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$&lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt;$0(ResourceMethodInvocationHandlerFactory.java:52) ~[?:?]
&#160; &#160; at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146) ~[?:?]
&#160; &#160; at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189) ~[?:?]
&#160; &#160; at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176) ~[?:?]
&#160; &#160; at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93) ~[?:?]
&#160; &#160; at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478) ~[?:?]
&#160; &#160; at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400) ~[?:?]
&#160; &#160; at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81) ~[?:?]
&#160; &#160; at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:256) ~[?:?]
&#160; &#160; at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) ~[?:?]
&#160; &#160; at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) ~[?:?]
&#160; &#160; at org.glassfish.jersey.internal.Errors.process(Errors.java:292) ~[?:?]
&#160; &#160; at org.glassfish.jersey.internal.Errors.process(Errors.java:274) ~[?:?]
&#160; &#160; at org.glassfish.jersey.internal.Errors.process(Errors.java:244) ~[?:?]
&#160; &#160; at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265) ~[?:?]
&#160; &#160; at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235) ~[?:?]
&#160; &#160; at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684) ~[?:?]
&#160; &#160; at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394) ~[?:?]
&#160; &#160; at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346) ~[?:?]
&#160; &#160; at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358) ~[?:?]
&#160; &#160; at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:311) ~[?:?]
&#160; &#160; at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205) ~[?:?]
&#160; &#160; at org.ops4j.pax.web.service.spi.servlet.OsgiInitializedServlet.service(OsgiInitializedServlet.java:102) ~[bundleFile:?]
&#160; &#160; at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) ~[?:?]
&#160; &#160; at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) ~[?:?]
&#160; &#160; at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) ~[?:?]
&#160; &#160; at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) ~[?:?]
&#160; &#160; at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) ~[?:?]
&#160; &#160; at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) ~[?:?]
&#160; &#160; at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) ~[?:?]
&#160; &#160; at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) ~[?:?]
&#160; &#160; at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) ~[?:?]
&#160; &#160; at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:458) ~[?:?]
&#160; &#160; at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:373) ~[?:?]
&#160; &#160; at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) ~[?:?]
&#160; &#160; at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) ~[?:?]
&#160; &#160; at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387) ~[?:?]
&#160; &#160; at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:370) ~[?:?]
&#160; &#160; at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) ~[?:?]
&#160; &#160; at org.ops4j.pax.web.service.spi.servlet.OsgiInitializedFilter.doFilter(OsgiInitializedFilter.java:176) ~[bundleFile:?]
&#160; &#160; at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.opendaylight.aaa.filterchain.filters.CustomFilterAdapter.doFilter(CustomFilterAdapter.java:73) ~[bundleFile:?]
&#160; &#160; at org.ops4j.pax.web.service.spi.servlet.OsgiInitializedFilter.doFilter(OsgiInitializedFilter.java:176) ~[bundleFile:?]
&#160; &#160; at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.ops4j.pax.web.service.spi.servlet.OsgiFilterChain.doFilter(OsgiFilterChain.java:100) ~[bundleFile:?]
&#160; &#160; at org.ops4j.pax.web.service.jetty.internal.PaxWebServletHandler.doHandle(PaxWebServletHandler.java:310) ~[bundleFile:?]
&#160; &#160; at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:234) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.ops4j.pax.web.service.jetty.internal.PrioritizedHandlerCollection.handle(PrioritizedHandlerCollection.java:96) ~[bundleFile:?]
&#160; &#160; at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) ~[bundleFile:9.4.50.v20221201]
&#160; &#160; at java.lang.&lt;span class=&quot;code-object&quot;&gt;Thread&lt;/span&gt;.run(&lt;span class=&quot;code-object&quot;&gt;Thread&lt;/span&gt;.java:833) ~[?:?]
Caused by: java.lang.IllegalArgumentException: Invalid nesting of data.
&#160; &#160; at com.google.common.base.Preconditions.checkArgument(Preconditions.java:143) ~[bundleFile:?]
&#160; &#160; at org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter.checkDataNodeContainer(ImmutableNormalizedNodeStreamWriter.java:290) ~[bundleFile:?]
&#160; &#160; at org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter.startUnkeyedList(ImmutableNormalizedNodeStreamWriter.java:154) ~[bundleFile:?]
&#160; &#160; at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.wasProcessedAsCompositeNode(NormalizedNodeWriter.java:195) ~[bundleFile:?]
&#160; &#160; at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.write(NormalizedNodeWriter.java:99) ~[bundleFile:?]
&#160; &#160; at org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.createEditConfigAnyxml(NetconfMessageTransformUtil.java:325) ~[?:?]
&#160; &#160; at org.opendaylight.netconf.client.mdsal.impl.NetconfRpcStructureTransformer.createEditConfigStructure(NetconfRpcStructureTransformer.java:64) ~[?:?]
&#160; &#160; at org.opendaylight.netconf.client.mdsal.impl.NetconfBaseOps.createEditConfigStructure(NetconfBaseOps.java:362) ~[?:?]
&#160; &#160; at org.opendaylight.netconf.client.mdsal.spi.AbstractNetconfDataTreeService.replace(AbstractNetconfDataTreeService.java:303) ~[?:?]
&#160; &#160; at org.opendaylight.restconf.nb.rfc8040.rests.transactions.NetconfRestconfTransaction.lambda$replace$6(NetconfRestconfTransaction.java:115) ~[bundleFile:?]
&#160; &#160; at org.opendaylight.restconf.nb.rfc8040.rests.transactions.NetconfRestconfTransaction.lambda$enqueueOperation$7(NetconfRestconfTransaction.java:210) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:223) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:210) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:123) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1286) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1055) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:782) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.CombinedFuture$CallableInterruptibleTask.setValue(CombinedFuture.java:201) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.CombinedFuture$CombinedFutureInterruptibleTask.afterRanInterruptiblySuccess(CombinedFuture.java:129) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:88) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.CombinedFuture$CombinedFutureInterruptibleTask.execute(CombinedFuture.java:108) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.CombinedFuture.handleAllCompleted(CombinedFuture.java:65) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AggregateFuture.processCompleted(AggregateFuture.java:301) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AggregateFuture.decrementCountAndMaybeComplete(AggregateFuture.java:283) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AggregateFuture.lambda$init$1(AggregateFuture.java:181) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1286) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1055) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:782) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.SettableFuture.set(SettableFuture.java:49) ~[bundleFile:?]
&#160; &#160; at org.opendaylight.netconf.client.mdsal.spi.NetconfDeviceRpc$1.onSuccess(NetconfDeviceRpc.java:68) ~[?:?]
&#160; &#160; at org.opendaylight.netconf.client.mdsal.spi.NetconfDeviceRpc$1.onSuccess(NetconfDeviceRpc.java:56) ~[?:?]
&#160; &#160; at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1133) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1286) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1055) ~[bundleFile:?]
&#160; &#160; at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:782) ~[bundleFile:?]
&#160; &#160; at org.opendaylight.netconf.client.mdsal.UncancellableFuture.set(UncancellableFuture.java:45) ~[?:?]
&#160; &#160; at org.opendaylight.netconf.client.mdsal.NetconfDeviceCommunicator.processMessage(NetconfDeviceCommunicator.java:299) ~[?:?]
&#160; &#160; at org.opendaylight.netconf.client.mdsal.NetconfDeviceCommunicator.onMessage(NetconfDeviceCommunicator.java:218) ~[?:?]
&#160; &#160; at org.opendaylight.netconf.client.mdsal.NetconfDeviceCommunicator.onMessage(NetconfDeviceCommunicator.java:48) ~[?:?]
&#160; &#160; at org.opendaylight.netconf.nettyutil.AbstractNetconfSession.handleMessage(AbstractNetconfSession.java:68) ~[?:?]
&#160; &#160; at org.opendaylight.netconf.nettyutil.AbstractNetconfSession.channelRead0(AbstractNetconfSession.java:195) ~[?:?]
&#160; &#160; at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[?:?]
&#160; &#160; at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[?:?]
&#160; &#160; at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[?:?]
&#160; &#160; at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[?:?]
&#160; &#160; at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[?:?]
&#160; &#160; at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[?:?]
&#160; &#160; at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[?:?]
&#160; &#160; at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[?:?]
&#160; &#160; at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[?:?]
&#160; &#160; at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[?:?]
&#160; &#160; at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[?:?]
&#160; &#160; at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[?:?]
&#160; &#160; at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:61) ~[?:?]
&#160; &#160; at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:425) ~[?:?]
&#160; &#160; at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[?:?]
&#160; &#160; at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[?:?]
&#160; &#160; at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[?:?]
&#160; &#160; at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[?:?]
&#160; &#160; at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[?:?]
&#160; &#160; at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[?:?]
&#160; &#160; at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[?:?]
&#160; &#160; ... 1 more
 &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;





&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="72407" author="ivanhrasko" created="Wed, 19 Jul 2023 13:15:33 +0000"  >&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;The &quot;key&quot; statement, which MUST be present if the list represents
configuration and MAY be present otherwise, takes as an argument a
string that specifies a space-separated list of one or more leaf
identifiers of this list.&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;https://datatracker.ietf.org/doc/html/rfc7950#section-7.8.2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://datatracker.ietf.org/doc/html/rfc7950#section-7.8.2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would expect that list like this in &lt;b&gt;config:false&lt;/b&gt;.&lt;/p&gt;</comment>
                            <comment id="72417" author="ivanhrasko" created="Fri, 21 Jul 2023 11:55:13 +0000"  >&lt;p&gt;We will just change our testing data to &lt;b&gt;config false;&lt;/b&gt; in order to be compliant with rfc7950. In addition, there is a bug created into yangtools project: &lt;a href=&quot;https://jira.opendaylight.org/browse/YANGTOOLS-1526&quot; title=&quot;Unkeyed config list is not rejected&quot; class=&quot;issue-link&quot; data-issue-key=&quot;YANGTOOLS-1526&quot;&gt;&lt;del&gt;YANGTOOLS-1526&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="72438" author="ivanhrasko" created="Tue, 8 Aug 2023 14:13:58 +0000"  >&lt;p&gt;We have no intention to control any knob. For our purposes, just changing test data to conform to specification is OK.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="19000" name="image-2023-07-12-12-37-48-403.png" size="122759" author="PeterSuna" created="Wed, 12 Jul 2023 10:37:49 +0000"/>
                            <attachment id="19004" name="test.yang" size="168" author="PeterSuna" created="Wed, 19 Jul 2023 11:40:58 +0000"/>
                            <attachment id="19001" name="toaster2@2009-11-20.yang" size="6264" author="PeterSuna" created="Wed, 12 Jul 2023 10:37:40 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i045pb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>