<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:55:41 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-1276] MandatoryLeafEnforcer fails when faced with augmentations</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-1276</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;In case a mandatory leaf was added to node via augmentation, the MandatoryLeafEnforcer fails to find it. It&#160;is aware of the existance of the mandatory leaf, but only searches through the direct children of the node. This leads to &quot;missing mandatory descendant&quot; exception, as shown below:&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;
java.lang.IllegalArgumentException: Node (http:&lt;span class=&quot;code-comment&quot;&gt;//org/openroadm/service?revision=2020-05-29)resource is missing mandatory descendant /(http://org/openroadm/service?revision=2020-05-29)type
&lt;/span&gt;at com.google.common.base.Preconditions.checkArgument(Preconditions.java:441) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.MandatoryLeafEnforcer.enforceOnData(MandatoryLeafEnforcer.java:57) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.CaseEnforcer$EnforcingMandatory.enforceOnTreeNode(CaseEnforcer.java:43) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.ChoiceModificationStrategy.enforceCases(ChoiceModificationStrategy.java:130) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.ChoiceModificationStrategy.optionalVerifyValueChildren(ChoiceModificationStrategy.java:102) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:126) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:153) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:118) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:153) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:118) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:153) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:118) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:153) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyValueChildren(AbstractNodeContainerModificationStrategy.java:118) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.fullVerifyStructure(SchemaAwareApplyOperation.java:153) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.ModifiedNode.seal(ModifiedNode.java:288) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractReadyIterator.process(AbstractReadyIterator.java:47) ~[?:?]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:298) ~[?:?]
at org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.ready(SnapshotBackedWriteTransaction.java:151) ~[?:?]
at org.opendaylight.controller.cluster.datastore.LocalTransactionFactoryImpl.onTransactionReady(LocalTransactionFactoryImpl.java:86) ~[?:?]
at org.opendaylight.controller.cluster.datastore.LocalTransactionContext.ready(LocalTransactionContext.java:100) ~[?:?]
at org.opendaylight.controller.cluster.datastore.LocalTransactionContext.directCommit(LocalTransactionContext.java:112) ~[?:?]
at org.opendaylight.controller.cluster.datastore.TransactionProxy.getDirectCommitFuture(TransactionProxy.java:334) ~[?:?]
at org.opendaylight.controller.cluster.datastore.TransactionProxy.createSingleCommitCohort(TransactionProxy.java:321) ~[?:?]
at org.opendaylight.controller.cluster.datastore.TransactionProxy.ready(TransactionProxy.java:286) ~[?:?]
at org.opendaylight.controller.cluster.datastore.TransactionProxy.ready(TransactionProxy.java:61) ~[?:?]
at org.opendaylight.controller.cluster.databroker.AbstractDOMBrokerWriteTransaction.commit(AbstractDOMBrokerWriteTransaction.java:140) ~[?:?]
at org.opendaylight.mdsal.binding.dom.adapter.BindingDOMWriteTransactionAdapter.commit(BindingDOMWriteTransactionAdapter.java:70) ~[?:?]
at com.fujitsu.fnc.sdnfw.odlutils.debug.impl.ReadWriteTransactionDebugWrapper.commit(ReadWriteTransactionDebugWrapper.java:255) ~[?:?]
at com.fujitsu.fnc.mlpce.fibertail.provider.FiberTailProviderImpl.commitTransaction(FiberTailProviderImpl.java:18451) ~[?:?]
at com.fujitsu.fnc.mlpce.fibertail.provider.FiberTailProviderImpl.openroadmServiceActivate(FiberTailProviderImpl.java:16382) ~[?:?]
at com.fujitsu.fnc.mlpce.fibertail.provider.FiberTailProviderImpl$AttServiceActivator.run(FiberTailProviderImpl.java:18692) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
at java.lang.&lt;span class=&quot;code-object&quot;&gt;Thread&lt;/span&gt;.run(&lt;span class=&quot;code-object&quot;&gt;Thread&lt;/span&gt;.java:834) [?:?]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="33919">YANGTOOLS-1276</key>
            <summary>MandatoryLeafEnforcer fails when faced with augmentations</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="tibor.kral">Tibor Kr&#225;l</assignee>
                                    <reporter username="tibor.kral">Tibor Kr&#225;l</reporter>
                        <labels>
                    </labels>
                <created>Wed, 21 Apr 2021 15:35:31 +0000</created>
                <updated>Tue, 2 Nov 2021 10:03:56 +0000</updated>
                            <resolved>Tue, 2 Nov 2021 10:03:56 +0000</resolved>
                                    <version>6.0.6</version>
                    <version>7.0.1</version>
                    <version>5.0.10</version>
                                    <fixVersion>8.0.0</fixVersion>
                                    <component>parser</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="69200" author="tibor.kral" created="Tue, 27 Apr 2021 10:28:48 +0000"  >&lt;p&gt;The augmentation is not targeting different module here. The exception is caused by something else - probably binding layer.&lt;/p&gt;</comment>
                            <comment id="69222" author="rovarga" created="Tue, 18 May 2021 09:01:19 +0000"  >&lt;p&gt;The problem is actually MandatoryLeafEnforcer, as it does not construct YangInstanceIdentifier hierarchy correctly &#8211; it effectively maps SchemaNode QNames and plays pretend they patch PathArguments. This is a very classic mapping mistake.&lt;/p&gt;</comment>
                            <comment id="69316" author="rovarga" created="Fri, 18 Jun 2021 14:28:55 +0000"  >&lt;p&gt;This needs more work, as the lookup does not quite work for example in bgp-benchmark-app, where there is a mandatory leaf, which is augmented, but in fact the entire subtree is being augmented, hence there is no corresponding augmentation.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="22988">YANGTOOLS-568</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|i03xrz:</customfieldvalue>

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