<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:56:09 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-1435] Module name space collision with YANG modules with submodules and groupings from the submodules</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-1435</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;When building EffectiveSchemaContext for YANG modules, one with submodules and the other with groupings imported from the submodules, the process may fail with module name space collision.&lt;/p&gt;

&lt;p&gt;Following is such an example. There are 2 modules (&lt;tt&gt;foo&lt;/tt&gt; &amp;amp; &lt;tt&gt;bar&lt;/tt&gt;): &lt;tt&gt;foo&lt;/tt&gt; has two submodules (&lt;tt&gt;foo-a&lt;/tt&gt; &amp;amp; &lt;tt&gt;foo-b&lt;/tt&gt;) and &lt;tt&gt;bar&lt;/tt&gt; uses groupings from &lt;tt&gt;foo&lt;/tt&gt; defined in its submodules.&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 foo {
    namespace &quot;urn:foo&quot;;
    prefix &quot;foo&quot;;

    include foo-a;
    include foo-b;

    container foo {
        uses foo-a;
        uses foo-b;
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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;submodule foo-a {
    belongs-to foo {
        prefix &quot;foo&quot;;
    }

    grouping foo-a {
        leaf a {
            type string;
        }
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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;submodule foo-b {
    belongs-to foo {
        prefix &quot;foo&quot;;
    }

    grouping foo-b {
        leaf b {
            type string;
        }
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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 bar {
    namespace &quot;urn:bar&quot;;
    prefix &quot;bar&quot;;

    import foo { prefix &quot;foo&quot;; }

    container bar {
        uses foo:foo-a;
        uses foo:foo-b;
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Error message while compiling &lt;tt&gt;foo&lt;/tt&gt; and &lt;tt&gt;bar&lt;/tt&gt;:&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: org.opendaylight.yangtools.yang.parser.spi.source.SourceException: Module namespace collision: urn:foo. At /home/jenkins/OpenDaylight/yangtools/parser/yang-parser-rfc7950/target/test-classes/bugs/YT1435/foo.yang:1:1 [at /home/jenkins/OpenDaylight/yangtools/parser/yang-parser-rfc7950/target/test-classes/bugs/YT1435/foo.yang:1:1]
	at org.opendaylight.yangtools.yang.parser.rfc7950@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.ModuleStatementSupport.onLinkageDeclared(ModuleStatementSupport.java:173)
	at org.opendaylight.yangtools.yang.parser.reactor@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementDefinitionContext.onDeclarationFinished(StatementDefinitionContext.java:76)
	at org.opendaylight.yangtools.yang.parser.reactor@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.stmt.reactor.OriginalStmtCtx.finishDeclaration(OriginalStmtCtx.java:161)
	at org.opendaylight.yangtools.yang.parser.reactor@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.exitStatement(AbstractResumedStatement.java:227)
	at org.opendaylight.yangtools.yang.parser.reactor@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextWriter.endStatement(StatementContextWriter.java:79)
	at org.opendaylight.yangtools.yang.parser.rfc7950@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.doProcessStatement(StatementContextVisitor.java:125)
	at org.opendaylight.yangtools.yang.parser.rfc7950@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processNewStatement(StatementContextVisitor.java:111)
	at org.opendaylight.yangtools.yang.parser.rfc7950@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processStatement(StatementContextVisitor.java:96)
	at org.opendaylight.yangtools.yang.parser.rfc7950@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.visit(StatementContextVisitor.java:46)
	at org.opendaylight.yangtools.yang.parser.rfc7950@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangStatementStreamSource.writeLinkage(YangStatementStreamSource.java:104)
	at org.opendaylight.yangtools.yang.parser.reactor@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext.loadStatements(SourceSpecificContext.java:414)
	at org.opendaylight.yangtools.yang.parser.reactor@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.loadPhaseStatementsFor(BuildGlobalContext.java:300)
	... 46 more
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="35812">YANGTOOLS-1435</key>
            <summary>Module name space collision with YANG modules with submodules and groupings from the submodules</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.opendaylight.org/images/icons/priorities/minor.svg">Low</priority>
                        <status id="10003" iconUrl="https://jira.opendaylight.org/images/icons/status_generic.gif" description="">Confirmed</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="sangwookha">Sangwook Ha</reporter>
                        <labels>
                    </labels>
                <created>Fri, 20 May 2022 20:32:37 +0000</created>
                <updated>Tue, 22 Nov 2022 17:46:28 +0000</updated>
                                            <version>8.0.5</version>
                    <version>7.0.17</version>
                                                    <component>parser</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="71106" author="JIRAUSER13318" created="Fri, 20 May 2022 21:35:13 +0000"  >&lt;p&gt;Reproducers&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;master: &lt;a href=&quot;https://git.opendaylight.org/gerrit/c/yangtools/+/101259&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/c/yangtools/+/101259&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;8.0.x: &lt;a href=&quot;https://git.opendaylight.org/gerrit/c/yangtools/+/101260&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/c/yangtools/+/101260&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;b&gt;master&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Initially all 4 tests passed &lt;a href=&quot;https://git.opendaylight.org/gerrit/c/yangtools/+/101259/1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;initially&lt;/a&gt;:&lt;br/&gt;
&lt;a href=&quot;https://jenkins.opendaylight.org/releng/job/yangtools-maven-verify-master-mvn38-openjdk17/387/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://jenkins.opendaylight.org/releng/job/yangtools-maven-verify-master-mvn38-openjdk17/387/&lt;/a&gt;&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;13:42:18 [INFO] Running org.opendaylight.yangtools.yang.stmt.YT1435Test
13:42:18 [INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.025 s - in org.opendaylight.yangtools.yang.stmt.YT1435Test
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;However, 2 tests failed in the second build &lt;a href=&quot;https://git.opendaylight.org/gerrit/c/yangtools/+/101259/1..3&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;with the last test case skipped&lt;/a&gt;:&lt;br/&gt;
&lt;a href=&quot;https://jenkins.opendaylight.org/releng/job/yangtools-maven-verify-master-mvn38-openjdk17/388/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://jenkins.opendaylight.org/releng/job/yangtools-maven-verify-master-mvn38-openjdk17/388/&lt;/a&gt;&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;14:09:12 [INFO] Running org.opendaylight.yangtools.yang.stmt.YT1435Test
14:09:12 [ERROR] Tests run: 4, Failures: 0, Errors: 2, Skipped: 1, Time elapsed: 0.022 s &amp;lt;&amp;lt;&amp;lt; FAILURE! - in org.opendaylight.yangtools.yang.stmt.YT1435Test
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;b&gt;8.0.x&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Initially 3 tests out of 4 failed:&lt;br/&gt;
&lt;a href=&quot;https://jenkins.opendaylight.org/releng/job/yangtools-maven-verify-8.0.x-mvn38-openjdk11/26/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://jenkins.opendaylight.org/releng/job/yangtools-maven-verify-8.0.x-mvn38-openjdk11/26/&lt;/a&gt;&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;13:41:01 [INFO] Running org.opendaylight.yangtools.yang.stmt.YT1435Test
13:41:01 [ERROR] Tests run: 4, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 0.035 s &amp;lt;&amp;lt;&amp;lt; FAILURE! - in org.opendaylight.yangtools.yang.stmt.YT1435Test
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;But 2 tests failed in the second build without any change:&lt;br/&gt;
&lt;a href=&quot;https://jenkins.opendaylight.org/releng/job/yangtools-maven-verify-8.0.x-mvn38-openjdk11/27/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://jenkins.opendaylight.org/releng/job/yangtools-maven-verify-8.0.x-mvn38-openjdk11/27/&lt;/a&gt;&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;14:04:24 [INFO] Running org.opendaylight.yangtools.yang.stmt.YT1435Test
14:04:25 [ERROR] Tests run: 4, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.03 s &amp;lt;&amp;lt;&amp;lt; FAILURE! - in org.opendaylight.yangtools.yang.stmt.YT1435Test
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="71107" author="rovarga" created="Wed, 25 May 2022 13:13:08 +0000"  >&lt;p&gt;So the assumption here is that a source is either in library or main source, with nominally no overlap between the two. Reactor is not equipped to handle multiple sources for a particular &lt;/p&gt;
{module,submodule}
&lt;p&gt;+revision &amp;#8211; that is a higher-level construct in yang.repo.api, which picks one of the sources based on availability.&lt;br/&gt;
I agree the failures should be consistent, though.&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|i042dz:</customfieldvalue>

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