<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:09:58 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>[MDSAL-505] Improve leafref cycle detection</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-505</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;Current detection of circular leafref chains relies on parsing the expression multiple times and attempting to detect when we arrive at the same leafref.&lt;/p&gt;

&lt;p&gt;We should be able to improve this by tracking which leafref leaf nodes we have traversed, using a simple Collection.contains() to check we re-encountering a leafref.&lt;/p&gt;</description>
                <environment></environment>
        <key id="32276">MDSAL-505</key>
            <summary>Improve leafref cycle detection</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="10001" iconUrl="https://jira.opendaylight.org/" description="">In Review</status>
                    <statusCategory id="4" key="indeterminate" colorName="yellow"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="SamoSchneider">Samuel Schneider</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                    </labels>
                <created>Mon, 23 Dec 2019 17:31:08 +0000</created>
                <updated>Fri, 19 Jan 2024 14:53:35 +0000</updated>
                                                            <fixVersion>13.0.1</fixVersion>
                                    <component>Binding codegen</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="72305" author="JIRAUSER14508" created="Mon, 19 Jun 2023 12:50:49 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=rovarga&quot; class=&quot;user-hover&quot; rel=&quot;rovarga&quot;&gt;rovarga&lt;/a&gt;&lt;br/&gt;
I was looking in to this and I couldn&apos;t find any circular leafref chains detection. Only check for self-referencing leaf.&lt;br/&gt;
Is something like this meant to be circular leafref chain?:&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;
    list neighbor {
         description
           &lt;span class=&quot;code-quote&quot;&gt;&quot;List of neighbors.&quot;&lt;/span&gt;;
         leaf neighbor-id1 {
             type leafref {
                 path &lt;span class=&quot;code-quote&quot;&gt;&quot;../../neighbor/neighbor-id2&quot;&lt;/span&gt;;
             }
             description &lt;span class=&quot;code-quote&quot;&gt;&quot;Neighbor.&quot;&lt;/span&gt;;
         }

         leaf neighbor-id2 {
             type leafref {
                  path &lt;span class=&quot;code-quote&quot;&gt;&quot;../../neighbor/neighbor-id3&quot;&lt;/span&gt;;
             }
             description &lt;span class=&quot;code-quote&quot;&gt;&quot;Neighbor.&quot;&lt;/span&gt;;
         }

         leaf neighbor-id3 {
             type leafref {
                 path &lt;span class=&quot;code-quote&quot;&gt;&quot;../../neighbor/neighbor-id1&quot;&lt;/span&gt;;
             }
            description &lt;span class=&quot;code-quote&quot;&gt;&quot;Neighbor.&quot;&lt;/span&gt;;
         }
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;if so, attempt to generate from yang like this results in StackOverflowError.&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;
Caused by: java.lang.StackOverflowError
        at org.opendaylight.mdsal.binding.generator@12.0.0-SNAPSHOT/org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractTypeObjectGenerator.methodReturnElementType(AbstractTypeObjectGenerator.java)
        at org.opendaylight.mdsal.binding.generator@12.0.0-SNAPSHOT/org.opendaylight.mdsal.binding.generator.impl.reactor.TypeReference$ResolvedLeafref.methodReturnType(TypeReference.java:61)
        at org.opendaylight.mdsal.binding.generator@12.0.0-SNAPSHOT/org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractTypeObjectGenerator.createMethodReturnElementType(AbstractTypeObjectGenerator.java:499)
        at org.opendaylight.mdsal.binding.generator@12.0.0-SNAPSHOT/org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractTypeObjectGenerator.methodReturnElementType(AbstractTypeObjectGenerator.java:485)
        at org.opendaylight.mdsal.binding.generator@12.0.0-SNAPSHOT/org.opendaylight.mdsal.binding.generator.impl.reactor.TypeReference$ResolvedLeafref.methodReturnType(TypeReference.java:61)
        at org.opendaylight.mdsal.binding.generator@12.0.0-SNAPSHOT/org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractTypeObjectGenerator.createMethodReturnElementType(AbstractTypeObjectGenerator.java:499)
        at org.opendaylight.mdsal.binding.generator@12.0.0-SNAPSHOT/org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractTypeObjectGenerator.methodReturnElementType(AbstractTypeObjectGenerator.java:485)
        at org.opendaylight.mdsal.binding.generator@12.0.0-SNAPSHOT/org.opendaylight.mdsal.binding.generator.impl.reactor.TypeReference$ResolvedLeafref.methodReturnType(TypeReference.java:61)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                    </comments>
                    <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|i03qif:</customfieldvalue>

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