<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:09:59 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-517] Target type not yet generated with augmenting action inputs</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-517</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;The following two models:&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;module a {
  yang-version 1.1;
  namespace &quot;a&quot;;
  prefix a;

  grouping a-grp {
    action a-act {
      input {
        leaf a-action-input-leaf {
          type empty;
        }
      }
    }
  }
  container a-cont {
    uses a:a-grp;
  }
}

module b {
  yang-version 1.1;
  namespace &quot;b&quot;;
  prefix b;

  import a {
    prefix a;
  }

  augment &quot;/a:a-cont/a:a-act/a:input&quot; {
   description
      &quot;An augmentation of a action input of module a&quot;;
    leaf b-aug-leaf {
      type empty;
    }
  }
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;result in AbstractTypeGenerator.augmentationToGenTypes() failing:&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;[ERROR] yang-to-sources: Unable to generate sources with org.opendaylight.mdsal.binding.maven.api.gen.plugin.CodeGeneratorImpl generator
java.lang.NullPointerException: Target type not yet generated: InputEffectiveStatementImpl{path=AbsoluteSchemaPath{path=[(a)a-cont, (a)a-act, (a)input]}}
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.augmentationToGenTypes (AbstractTypeGenerator.java:796)
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.allAugmentsToGenTypes (AbstractTypeGenerator.java:375)
    at java.util.ArrayList.forEach (ArrayList.java:1257)
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.&amp;lt;init&amp;gt; (AbstractTypeGenerator.java:203)
    at org.opendaylight.mdsal.binding.generator.impl.CodegenTypeGenerator.&amp;lt;init&amp;gt; (CodegenTypeGenerator.java:32)
    at org.opendaylight.mdsal.binding.generator.impl.BindingGeneratorImpl.generateTypes (BindingGeneratorImpl.java:64)
    at org.opendaylight.mdsal.binding.maven.api.gen.plugin.CodeGeneratorImpl.generateSources (CodeGeneratorImpl.java:70)
    at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.generateSourcesWithOneGenerator (YangToSourcesProcessor.java:383)
    at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.generateSources (YangToSourcesProcessor.java:332)
    at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.conditionalExecute (YangToSourcesProcessor.java:159)
    at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesMojo.execute (YangToSourcesMojo.java:127)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="32439">MDSAL-517</key>
            <summary>Target type not yet generated with augmenting action inputs</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="miro.kovac">Miroslav Kovac</reporter>
                        <labels>
                    </labels>
                <created>Thu, 27 Feb 2020 16:27:30 +0000</created>
                <updated>Sat, 29 Feb 2020 09:11:51 +0000</updated>
                            <resolved>Sat, 29 Feb 2020 09:11:51 +0000</resolved>
                                                    <fixVersion>6.0.0</fixVersion>
                    <fixVersion>5.0.10</fixVersion>
                    <fixVersion>4.0.12</fixVersion>
                                    <component>Binding codegen</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="67909" author="miro.kovac" created="Thu, 27 Feb 2020 16:50:22 +0000"  >&lt;p&gt;if the action in the grouping of the module a would be enhanced with container inside of the input and the augmation of the module b would have path to that container this would generate everything just fine&lt;/p&gt;</comment>
                            <comment id="67916" author="rovarga" created="Thu, 27 Feb 2020 20:25:13 +0000"  >&lt;p&gt;The problem is that findChildNodeByPath() is not equipped to handle action&apos;s mode of generation &#8211; the action itself is generated at its instantiation, but its input/output structures are generated at its original definition. Hence in this example (a = foo, b=bar for clarity) it looks for:&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;AbsoluteSchemaPath{path=[(foo)foo-cont, (foo)foo-act, (foo)input]}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;whereas the correct type should be&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;AbsoluteSchemaPath{path=[(foo)foo-grp, (foo)foo-act, (foo)input]}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;as present in the lookup. There is no way findChildNodeByPath() can now this trick, nor does augmentationToGenTypes() know enough (all it has is SchemaNodeIdentifier).&lt;/p&gt;

&lt;p&gt;Perhaps actionsToGenType() should register the paths it is reusing as proxies? Note these proxies need to be ignored for purposes of &apos;what Types do we need to generate&apos;.&lt;/p&gt;</comment>
                            <comment id="67921" author="rovarga" created="Fri, 28 Feb 2020 18:23:36 +0000"  >&lt;p&gt;While the case provided here is fixed, there is another problem, which is the following:&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;module baz {
  yang-version 1.1;
  namespace &quot;baz&quot;;
  prefix baz;

  import foo {
    prefix foo;
  }

  container baz-cont {
    uses foo:foo-grp {
      augment foo-act/input {
        leaf baz-aug-leaf {
          type string;
        }
      }
    }
  }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03r7z:</customfieldvalue>

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