<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:09:46 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-420] LazyDataObjectModification reports incorrect results</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-420</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;When an InMemoryDataTree node appears/disappears, we report the appropriate APPEARED/DISAPPEARED event, which is sufficient for most users.&lt;/p&gt;

&lt;p&gt;Unfortunately, this breaks if the user attempts to drill into the modification, such as binding lookup of a container within a choice statement.&lt;/p&gt;</description>
                <environment></environment>
        <key id="31354">MDSAL-420</key>
            <summary>LazyDataObjectModification reports incorrect results</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="10002">Duplicate</resolution>
                                        <assignee username="rovarga">Robert Varga</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                    </labels>
                <created>Mon, 28 Jan 2019 18:30:54 +0000</created>
                <updated>Mon, 28 Jan 2019 23:42:48 +0000</updated>
                            <resolved>Mon, 28 Jan 2019 23:42:23 +0000</resolved>
                                                                    <component>Binding runtime</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="66308" author="rovarga" created="Mon, 28 Jan 2019 18:58:46 +0000"  >&lt;p&gt;Unfortunately the API contracts around here are fuzzy and untested, hence we are between a rock and a hard place. For direct users of DataTreeCandidateNode the current behavior makes sense. They know the node has appeared and if they choose to drill down, they will find the cause of the node&apos;s appearance, and this will be consistent with getChildNodes().&lt;/p&gt;

&lt;p&gt;We could simply flip the reporting to the WRITE/DELETE codepath, but that would end up being inconsistent with getChildNodes() as well as create further problems with the type of descendant nodes &#8211; for example if we have two nested non-presence containers, they both should be reported as APPEARED when a leaf in the inner container is introduced. Changing the logic would pretend the inner container was actually written, which is the wrong outcome.&lt;/p&gt;</comment>
                            <comment id="66309" author="rovarga" created="Mon, 28 Jan 2019 18:59:31 +0000"  >&lt;p&gt;Hence it is up to Binding to deal with this difference and project a correct interpretation of the results. It certainly has all the tools required for the job.&lt;/p&gt;</comment>
                            <comment id="66310" author="rovarga" created="Mon, 28 Jan 2019 19:25:56 +0000"  >&lt;p&gt;This has been observed when LazyDataObjectModification.getModifiedChild() is asked to cross an BindingStructuralType.INVISIBLE_CONTAINER node disappearing. Current code assumes 1:1 correspondence with DOM model, which is wrong.&lt;/p&gt;

&lt;p&gt;Since we are not reporting INVISIBLE_CONTAINERs, only their content, and we have a simplified ModificationType, which can only express WRITE/DELETE/SUBTREE_MODIFIED, we must treat a disappeared INVISIBLE_CONTAINER as a DELETE operation of all its children &#8211; i.e. not rely on DOM to provide correct answers here.&lt;/p&gt;</comment>
                            <comment id="66323" author="rovarga" created="Mon, 28 Jan 2019 23:42:23 +0000"  >&lt;p&gt;This is a side-effect of &lt;a href=&quot;https://jira.opendaylight.org/browse/YANGTOOLS-938&quot; title=&quot;InMemoryDataStore delete/write cycle produces unexpected result&quot; class=&quot;issue-link&quot; data-issue-key=&quot;YANGTOOLS-938&quot;&gt;&lt;del&gt;YANGTOOLS-938&lt;/del&gt;&lt;/a&gt; and should be fixed there. With it applied, empty writes and deletes end up being DELETE modification types, hence making this a non-issue.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="31352">YANGTOOLS-938</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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|i03mdb:</customfieldvalue>

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