<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:56:10 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-1443] Fix YangDataEffectiveStatement definition</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-1443</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;Creating EffectiveModelContext with DefaultYangParserFactory fails if any models use `yang-data` extension from ietf-restconf.yang. This issue could be related to ietf-restconf namespace &quot;urn:ietf:params:xml:ns:yang:ietf-restconf&quot;, because if is changed EffectiveModelContext is successfully built.&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;[main] WARN org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext - Unexpected error processing source RevisionSourceIdentifier [name=test-bug@2017-07-27]. Please file an issue with this model attached.
java.util.NoSuchElementException: No value present
&#160; &#160; at java.base/java.util.Optional.get(Optional.java:148)
&#160; &#160; at org.opendaylight.yangtools.rfc8040.parser.YangDataEffectiveStatementImpl.&amp;lt;init&amp;gt;(YangDataEffectiveStatementImpl.java:40)
&#160; &#160; at org.opendaylight.yangtools.rfc8040.parser.YangDataStatementSupport.createEffective(YangDataStatementSupport.java:123)
&#160; &#160; at org.opendaylight.yangtools.rfc8040.parser.YangDataStatementSupport.createEffective(YangDataStatementSupport.java:36)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport.createEffective(AbstractStatementSupport.java:85)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createEffective(AbstractResumedStatement.java:124)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createEffective(AbstractResumedStatement.java:109)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.createEffective(StatementContextBase.java:439)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.loadEffective(ReactorStmtCtx.java:389)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.buildEffective(ReactorStmtCtx.java:385)
&#160; &#160; at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
&#160; &#160; at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
&#160; &#160; at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
&#160; &#160; at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
&#160; &#160; at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
&#160; &#160; at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
&#160; &#160; at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport.buildEffectiveSubstatements(AbstractStatementSupport.java:139)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.ModuleStatementSupport.buildEffectiveSubstatements(ModuleStatementSupport.java:227)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport.createEffective(AbstractStatementSupport.java:83)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createEffective(AbstractResumedStatement.java:124)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createEffective(AbstractResumedStatement.java:109)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.createEffective(StatementContextBase.java:439)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.loadEffective(ReactorStmtCtx.java:389)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.buildEffective(ReactorStmtCtx.java:385)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.transformEffective(BuildGlobalContext.java:261)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.buildEffective(BuildGlobalContext.java:211)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor$BuildAction.buildEffective(CrossSourceStatementReactor.java:224)
&#160; &#160; at org.opendaylight.yangtools.yang.parser.impl.DefaultYangParser.buildEffectiveModel(DefaultYangParser.java:96)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="35827">YANGTOOLS-1443</key>
            <summary>Fix YangDataEffectiveStatement definition</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.opendaylight.org/images/icons/priorities/critical.svg">High</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="PeterSuna">Peter Suna</reporter>
                        <labels>
                            <label>pt</label>
                    </labels>
                <created>Thu, 26 May 2022 10:43:33 +0000</created>
                <updated>Wed, 12 Oct 2022 18:19:38 +0000</updated>
                            <resolved>Wed, 12 Oct 2022 18:19:38 +0000</resolved>
                                    <version>9.0.0</version>
                    <version>8.0.6</version>
                    <version>7.0.17</version>
                                    <fixVersion>10.0.0</fixVersion>
                    <fixVersion>9.0.2</fixVersion>
                    <fixVersion>8.0.8</fixVersion>
                                    <component>parser</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="71110" author="rovarga" created="Thu, 26 May 2022 11:04:26 +0000"  >&lt;p&gt;What is the real-world example of this failure?&lt;br/&gt;
The &apos;anydata&apos; example is invalid AFAICT, based on rc:yang-data&apos;s description:&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;          It MUST contain data definition statements
          that result in exactly one container data node definition.
          An instance of a YANG data template can thus be translated
          into an XML instance document, whose top-level element
          corresponds to the top-level container.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="71111" author="petersuna" created="Thu, 26 May 2022 11:34:00 +0000"  >&lt;p&gt;Yes, I found this inside yumaworks netconf-pro server. So if the model is invalid, why it works when I change namespace inside extension-model to &quot;extension:model&quot; or any other?&lt;/p&gt;</comment>
                            <comment id="71112" author="rovarga" created="Thu, 26 May 2022 11:51:27 +0000"  >&lt;p&gt;Simple: if you do that, then suddenly it no longer is &quot;The RFC8040 yang-data Extension&quot;, but some random extension we know nothing about. RFC7950 Section 6.3.1 applies:&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;   The processing of extensions depends on whether support for those
   extensions is claimed for a given YANG parser or the tool set in
   which it is embedded.  An unsupported extension appearing in a YANG
   module as an unknown-statement (see Section 14) MAY be ignored in its
   entirety.  Any supported extension MUST be processed in accordance
   with the specification governing that extension.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="71114" author="rovarga" created="Thu, 26 May 2022 14:57:54 +0000"  >&lt;p&gt;It seems the spec is rather bad and based on &lt;a href=&quot;https://mailarchive.ietf.org/arch/msg/netconf/PxCbSq6rp5Sj0C2ylhzqeQrH2vo/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this NETCONF WG thread&lt;/a&gt; the intent is that &quot;container data node definition&quot; be &lt;b&gt;NOT&lt;/b&gt; interpreted with RFC7950 terminology. Specifically it seems that &quot;container&quot; is meant to say &quot;interior node with a single instance&quot;, i.e. include anydata and anyxml and perhaps even single-element lists.&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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i042gv:</customfieldvalue>

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