<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:15:30 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-631] YangInstanceIdentifierDeserializer fails on choice nodes</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-631</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;I tested below Model and it failed, reason existing Code is not good enough to find Path for &lt;b&gt;Choice Node&lt;/b&gt;, while loop in &lt;b&gt;YangInstanceIdentifierDeserializer&lt;/b&gt; &amp;gt;&amp;gt; &lt;b&gt;nextContextNode(&#8230;)&lt;/b&gt;&#160;below makes Current Null and throws Null Pointer Exception&lt;/p&gt;

&lt;p&gt;Which means MIX Node type like Choice handling is not proper&lt;/p&gt;

&lt;p&gt;&#160;&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;
&#160;container interfaces {
&#160;&#160; choice interfaces-type {
&#160; &#160; &#160;container type-gigabyte {
&#160;&#160;&#160;&#160;&#160;&#160; action reset {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; input {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; leaf reset-at {
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; type string;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; mandatory &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;;
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }
&#160;&#160;&#160;&#160;&#160;&#160; }
&#160;&#160;&#160;&#160; }
   }
&#160;}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;ins&gt;Code Snippet where it fails:&lt;/ins&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;YangInstanceIdentifierDeserializer&lt;/b&gt;&#160;&amp;gt;&amp;gt; In method&#160; :&#160;&lt;b&gt;nextContextNode(&#8230;)&lt;/b&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&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;
&lt;span class=&quot;code-keyword&quot;&gt;while&lt;/span&gt; (current.isMixin()) {
  path.add(current.getIdentifier());
  current = current.getChild(qname);
  variables.setCurrent(current);
}

&lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; current;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="31801">NETCONF-631</key>
            <summary>YangInstanceIdentifierDeserializer fails on choice nodes</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.opendaylight.org/images/icons/priorities/critical.svg">High</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="10000">Done</resolution>
                                        <assignee username="rovarga">Robert Varga</assignee>
                                    <reporter username="ajay.dp001">Ajay Deep Singh</reporter>
                        <labels>
                    </labels>
                <created>Thu, 11 Jul 2019 09:46:16 +0000</created>
                <updated>Tue, 23 Nov 2021 08:23:02 +0000</updated>
                            <resolved>Thu, 4 Nov 2021 15:56:36 +0000</resolved>
                                                    <fixVersion>2.0.8</fixVersion>
                                    <component>restconf-nb</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="69626" author="rovarga" created="Thu, 16 Sep 2021 15:07:02 +0000"  >&lt;p&gt;I think the best approach here is to ditch YangInstanceIdentifierDeserializer in favor of something more maintainable.&lt;/p&gt;

&lt;p&gt;The idea is to split dealing with raw strings and percent-encoding into a first step, which results in a nice immutable structure.&lt;/p&gt;

&lt;p&gt;We then take that representation and semantically binding it to an EffectiveModelContext, creating the appropriate YangInstanceIdentifier and EffectiveStatementInference to aid parsing request body and other schema/data related interactions.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="34944">NETCONF-834</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </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|i03odj:</customfieldvalue>

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