<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:09:38 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-370] InMemoryDOMDataStore cannot be instantiated with CONFIGURATION dataTree</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-370</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;The class org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStore is deprecated in fluorine, but in this class is constructor, which have used in previous releases LogicalDatastoreType for choosing if the in-memory dataStore will have config dataTree or operational dataTree. In fluorine version, the constructor is present, but the mdsal version of InMemoryDOMDataStore is used and type is ignored. Mdsal version of InMemoryDOMDataStore is by default only with operational dataTree.&lt;/p&gt;

&lt;p&gt;This is causing issues, when you want to have config datastore and have config false mandatory leaf, which you don&apos;t want to setup. The put operation works, but merge operation fails on preCommit phase:&lt;/p&gt;

&lt;p&gt;09:50:22,940 &lt;span class=&quot;error&quot;&gt;&amp;#91;pool-3-thread-1&amp;#93;&lt;/span&gt; WARN&#160; org.opendaylight.controller.md.sal.dom.broker.impl.CommitCoordinationTask&#160; - Tx: DOM-21 Error during phase preCommit, starting Abort&lt;br/&gt;
 TransactionCommitFailedException{message=preCommit execution failed, errorList=[RpcError [message=preCommit execution failed, severity=ERROR, errorType=APPLICATION, tag=operation-failed, applicationTag=null, info=null, cause=java.lang.IllegalArgumentException: Node (urn:example?revision=2018-09-18)int-interface[&lt;/p&gt;

{(urn:example?revision=2018-09-18)name=int1}

&lt;p&gt;] is missing mandatory descendant /(urn:urn:example?revision=2018-09-18)oper-status]]}&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.controller.md.sal.dom.broker.impl.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:37)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.controller.md.sal.dom.broker.impl.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:19)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.util.concurrent.ExceptionMapper.apply(ExceptionMapper.java:91)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.controller.md.sal.dom.broker.impl.TransactionCommitFailedExceptionMapper.apply(TransactionCommitFailedExceptionMapper.java:43)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.controller.md.sal.dom.broker.impl.CommitCoordinationTask.preCommitBlocking(CommitCoordinationTask.java:150)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.controller.md.sal.dom.broker.impl.CommitCoordinationTask.call(CommitCoordinationTask.java:65)&lt;br/&gt;
 &#160;&#160;&#160; at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:127)&lt;br/&gt;
 &#160;&#160;&#160; at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:57)&lt;br/&gt;
 &#160;&#160;&#160; at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:80)&lt;br/&gt;
 &#160;&#160;&#160; at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)&lt;br/&gt;
 &#160;&#160;&#160; at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)&lt;br/&gt;
 &#160;&#160;&#160; at java.lang.Thread.run(Thread.java:748)&lt;br/&gt;
 Caused by: java.lang.IllegalArgumentException: Node (urn:example?revision=2018-09-18)int-interface[&lt;br class=&quot;atl-forced-newline&quot; /&gt;&lt;/p&gt;
{(urn:example?revision=2018-09-18)name=int1}
&lt;p&gt;] is missing mandatory descendant /(urn:example?revision=2018-09-18)oper-status&lt;br/&gt;
 &#160;&#160;&#160; at com.google.common.base.Preconditions.checkArgument(Preconditions.java:434)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.MandatoryLeafEnforcer$Strict.enforceOnData(MandatoryLeafEnforcer.java:44)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.MandatoryLeafEnforcer.enforceOnTreeNode(MandatoryLeafEnforcer.java:59)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.ListEntryModificationStrategy.applyTouch(ListEntryModificationStrategy.java:56)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.applyMerge(AbstractNodeContainerModificationStrategy.java:168)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.ListEntryModificationStrategy.applyMerge(ListEntryModificationStrategy.java:40)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:223)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.mutateChildren(AbstractNodeContainerModificationStrategy.java:137)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.applyTouch(AbstractNodeContainerModificationStrategy.java:251)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.applyMerge(AbstractNodeContainerModificationStrategy.java:168)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:223)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.mutateChildren(AbstractNodeContainerModificationStrategy.java:137)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.applyTouch(AbstractNodeContainerModificationStrategy.java:251)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.applyMerge(AbstractNodeContainerModificationStrategy.java:168)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:223)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.StructuralContainerModificationStrategy.apply(StructuralContainerModificationStrategy.java:72)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.mutateChildren(AbstractNodeContainerModificationStrategy.java:137)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.applyTouch(AbstractNodeContainerModificationStrategy.java:251)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:210)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.RootModificationApplyOperation.apply(RootModificationApplyOperation.java:77)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractDataTreeTip.prepare(AbstractDataTreeTip.java:54)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore.prepare(InMemoryDOMDataStore.java:175)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMStoreThreePhaseCommitCohort.preCommit(InMemoryDOMStoreThreePhaseCommitCohort.java:93)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.controller.sal.core.compat.DOMStoreThreePhaseCommitCohortAdapter.preCommit(DOMStoreThreePhaseCommitCohortAdapter.java:31)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.controller.md.sal.dom.broker.impl.CommitCoordinationTask.preCommitAll(CommitCoordinationTask.java:171)&lt;br/&gt;
 &#160;&#160;&#160; at org.opendaylight.controller.md.sal.dom.broker.impl.CommitCoordinationTask.preCommitBlocking(CommitCoordinationTask.java:144)&lt;br/&gt;
 &#160;&#160;&#160; ... 7 more&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;The model looks as follows:&lt;/p&gt;

&lt;p&gt;container int-node {&lt;br/&gt;
&#160;&#160; &#160;list int-interface {&lt;br/&gt;
&#160;&#160; &#160;&#160;&#160; &#160;key &quot;name&quot;;&lt;br/&gt;
&#160;&#160; &#160;&#160;&#160; &#160;leaf name &lt;/p&gt;
{
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;type string;
&#160;&#160; &#160;&#160;&#160; &#160;}&lt;br/&gt;
&#160;&#160; &#160;&#160;&#160; &#160;leaf oper-status {&lt;br/&gt;
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;type enumeration {&lt;br/&gt;
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160; enum up {
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;value 1;
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;description
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160; &quot;Ready to pass packets.&quot;;
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160; }&lt;br/&gt;
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160; enum down {
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;value 2;
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;description
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160; &quot;The interface does not pass any packets.&quot;;
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160; }&lt;br/&gt;
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;}&lt;br/&gt;
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;config false;&lt;br/&gt;
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;mandatory true;&lt;br/&gt;
&#160;&#160; &#160;&#160;&#160; &#160;}&lt;br/&gt;
&#160;&#160; &#160;&#160;&#160; &#160;leaf info {
&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;type string;
&#160;&#160; &#160;&#160;&#160; &#160;}
&lt;p&gt;&#160;&#160; &#160;}&lt;br/&gt;
}&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Input data:&lt;/p&gt;

&lt;p&gt;new IntNodeBuilder().setIntInterface(Collections.singletonList(new IntInterfaceBuilder().setName(&quot;int1&quot;).setInfo(&quot;Info1&quot;).build())).build();&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="30751">MDSAL-370</key>
            <summary>InMemoryDOMDataStore cannot be instantiated with CONFIGURATION dataTree</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="10000">Done</resolution>
                                        <assignee username="rovarga">Robert Varga</assignee>
                                    <reporter username="apuchyova">Anna Benc&#250;rov&#225;</reporter>
                        <labels>
                    </labels>
                <created>Tue, 18 Sep 2018 08:03:49 +0000</created>
                <updated>Wed, 19 Sep 2018 13:17:48 +0000</updated>
                            <resolved>Wed, 19 Sep 2018 13:17:48 +0000</resolved>
                                    <version>Fluorine</version>
                                    <fixVersion>3.0.0</fixVersion>
                    <fixVersion>Fluorine SR1</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                        <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|i03it3:</customfieldvalue>

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