<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:52:44 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>[YANGTOOLS-268] Fix synchronization issues in InMemoryDataTree</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-268</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;There&apos;s a couple issues in InMemoryDataTree wrt to synchronization:&lt;/p&gt;

&lt;p&gt;1) There&apos;s redundant synchronization in the setSchemaContext, validate, prepare and commit methods, ie the methods are both synchronized and they use the read/write lock. The synchronized keyword should be removed (it&apos;s not good practice anyway to synchronize methods). I suspect the read/write lock was added afterwards and the person forgot to remove synchronized.&lt;/p&gt;

&lt;p&gt;2) The validate method accesses the &apos;rootNode&apos; member completely unsynchronized. This is unsafe - all accesses to &apos;rootNode&apos; must be synchronized wrt to one another. Since validate doesn&apos;t modify the &apos;rootNode&apos; it can acquire the read lock. It passes &apos;rootNode&apos; to another class and I don&apos;t think we need to hold the lock across that call so we should be able to do:&lt;/p&gt;

&lt;p&gt;  TreeNode localRootNode;&lt;br/&gt;
  rwLock.readLock().lock();&lt;br/&gt;
  try &lt;/p&gt;
{
      localRootNode = rootNode;
  }
&lt;p&gt; finally &lt;/p&gt;
{
      rwLock.readLock().unlock();
  }

&lt;p&gt;  m.getStrategy().checkApplicable(..., Optional.&amp;lt;TreeNode&amp;gt;of(localRootNode));&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="22688">YANGTOOLS-268</key>
            <summary>Fix synchronization issues in InMemoryDataTree</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <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="tpantelis">Tom Pantelis</assignee>
                                    <reporter username="tpantelis">Tom Pantelis</reporter>
                        <labels>
                    </labels>
                <created>Mon, 18 Aug 2014 12:35:07 +0000</created>
                <updated>Sun, 10 Apr 2022 18:35:15 +0000</updated>
                            <resolved>Thu, 4 Sep 2014 17:37:29 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="42977" author="tpantelis" created="Thu, 21 Aug 2014 03:33:52 +0000"  >&lt;p&gt;Submitted &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/10122/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/10122/&lt;/a&gt;.&lt;/p&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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1570</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=1570]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i0266f:</customfieldvalue>

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