<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:10:36 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-694] VerifyException thrown when resolving leafrefs with TAPI models</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-694</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;Following the discussion from the ODL forum (&lt;a href=&quot;https://lists.opendaylight.org/g/kernel-dev/topic/86257574#555),&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://lists.opendaylight.org/g/kernel-dev/topic/86257574#555&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;When building the &lt;b&gt;tapimodels&lt;/b&gt; module in transport-pce project, the following error occurs with the tapi-notification model:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;Caused by: com.google.common.base.VerifyException: Conflict on org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularLeafEffectiveStatement@7e58b0f6 between LeafGenerator{argument=(urn:onf:otcc:yang:tapi-notification?revision=2020-06-16)uuid, addedByUses} and LeafGenerator{argument=(urn:onf:otcc:yang:tapi-notification?revision=2020-06-16)uuid, addedByUses}
    at com.google.common.base.Verify.verify (Verify.java:443)
    at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.indexLeafGenerators (GeneratorReactor.java:350)
    at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.indexLeafGenerators (GeneratorReactor.java:352)
    at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.indexLeafGenerators (GeneratorReactor.java:352)
    at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.mapToGenerator (GeneratorReactor.java:328)
    at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.lenientResolveLeafref (GeneratorReactor.java:321)
    at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.resolveLeafref (GeneratorReactor.java:297)
    at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractTypeObjectGenerator.bindTypeDefinition (AbstractTypeObjectGenerator.java:362)
    at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractTypeAwareGenerator.bindTypeDefinition (AbstractTypeAwareGenerator.java:53)
    at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.bindTypeDefinition (GeneratorReactor.java:399)
    at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.bindTypeDefinition (GeneratorReactor.java:401)
    at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.bindTypeDefinition (GeneratorReactor.java:401)
    at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.execute (GeneratorReactor.java:155)
    at org.opendaylight.mdsal.binding.generator.impl.DefaultBindingGenerator.generateFor (DefaultBindingGenerator.java:68)
    at org.opendaylight.mdsal.binding.generator.impl.DefaultBindingGenerator.generateTypes (DefaultBindingGenerator.java:38)
    at org.opendaylight.mdsal.binding.java.api.generator.JavaFileGenerator.generateFiles (JavaFileGenerator.java:74)
    at org.opendaylight.yangtools.yang2sources.plugin.FileGeneratorTask.execute (FileGeneratorTask.java:66)
    at org.opendaylight.yangtools.yang2sources.plugin.FileGeneratorTask.execute (FileGeneratorTask.java:40)
    at org.opendaylight.yangtools.yang2sources.plugin.GeneratorTask.execute (GeneratorTask.java:36)
    at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.generateSources (YangToSourcesProcessor.java:335)
    at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.conditionalExecute (YangToSourcesProcessor.java:214)
    at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesMojo.execute (YangToSourcesMojo.java:139)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;As per the email thread, this happens with this set of models: &lt;a href=&quot;https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.1/YANG&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.1/YANG&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="34654">MDSAL-694</key>
            <summary>VerifyException thrown when resolving leafrefs with TAPI models</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="errea">Javier Errea</reporter>
                        <labels>
                    </labels>
                <created>Wed, 13 Oct 2021 15:31:34 +0000</created>
                <updated>Fri, 15 Oct 2021 18:25:35 +0000</updated>
                            <resolved>Fri, 15 Oct 2021 05:10:39 +0000</resolved>
                                    <version>8.0.0</version>
                    <version>8.0.5</version>
                                    <fixVersion>8.0.6</fixVersion>
                                    <component>Binding codegen</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="69714" author="rovarga" created="Wed, 13 Oct 2021 20:32:57 +0000"  >&lt;p&gt;We are violating and explicit assumption in mapToGenerator(), which is that there each EffectiveStatement has at most one Generator attached to it. This assumption happens to work for all the models we have in our platform, but TAPI seems to have a structure, where this does not hold, probably due to SchemaPath being the same, or the inheritance hierarchy this happens in.&lt;/p&gt;

&lt;p&gt;At any rate, this same problem is triggered with MD-SAL models if we try to bring yangtools-8.0.0-SNAPSHOT to the party, because it has been unshackled from SchemaPath (&lt;a href=&quot;https://jira.opendaylight.org/browse/YANGTOOLS-1066&quot; title=&quot;SchemaPath identification of SchemaNodes is costly and useless&quot; class=&quot;issue-link&quot; data-issue-key=&quot;YANGTOOLS-1066&quot;&gt;&lt;del&gt;YANGTOOLS-1066&lt;/del&gt;&lt;/a&gt;) and hence it is frequently the case that an EffectiveStatement object is visible in more than one part of the statement tree.&lt;/p&gt;

&lt;p&gt;In order to fix this, we need to eliminate indexLeafGenerators() and fix mapToGenerator() not only consider the resolved EffectiveStatement, but rather the complete state of the SchemaInferenceStack. This means taking a List&amp;lt;EffectiveStatement&amp;gt; and using that to navigate the Generator tree. This is easier said than done, as this navigation is not 1:1, and when looking up a Generator we need to consider not only the parent-&amp;gt;child axis, but also the groupings and augments of an AbstractCompositeGenerator.&lt;/p&gt;

&lt;p&gt;The patch attached to this issue is identifying the source of badness and outlines what needs to be done to resolve it.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="34662">MDSAL-696</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="32326">YANGTOOLS-1066</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="16708" name="error.txt" size="10891" author="errea" created="Wed, 13 Oct 2021 15:31:16 +0000"/>
                    </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|i04067:</customfieldvalue>

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