<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:56:00 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-1387] XPath: XPath keyword not accepted as valid XPath expression</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-1387</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;If data node is one of the XPath keywords (&lt;tt&gt;and&lt;/tt&gt;, &lt;tt&gt;div&lt;/tt&gt;, &lt;tt&gt;mod&lt;/tt&gt;, &lt;tt&gt;or&lt;/tt&gt;), then the data node name alone is not considered a valid XPath expression.&lt;/p&gt;

&lt;p&gt;For example, the following data model is not accepted because &lt;tt&gt;and&lt;/tt&gt; is not a valid XPath expression based on the &lt;a href=&quot;https://github.com/opendaylight/yangtools/blob/master/xpath/yang-xpath-antlr/src/main/antlr4/org/opendaylight/yangtools/yang/xpath/antlr/xpath.g4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Antlr specification&lt;/a&gt; used by Yangtools:&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 xpath-test {
  yang-version 1.1;
  namespace &quot;urn:opendaylight:must-test&quot;;
  prefix &quot;mt&quot;;

  revision &quot;2021-12-16&quot;;

  container foo {
    list bar {
      key &quot;baz&quot;;
      must &quot;and&quot;;
      leaf baz {
        type string;
      }
      list and {
        key &quot;baz&quot;;
        leaf baz {
          type string;
        }
      }
    }
  }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;And there is such a data model actually used by Cisco routers (&lt;a href=&quot;https://github.com/YangModels/yang/blob/3284ae3c508cc653a9e99405ada7f5e11cc4d529/vendor/cisco/xr/731/Cisco-IOS-XR-um-router-pim-cfg.yang#L1279&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Cisco-IOS-XR-um-router-pim-cfg.yang&lt;/a&gt;), and this is preventing Silicon or later version from mounting the devices.&lt;/p&gt;</description>
                <environment></environment>
        <key id="35046">YANGTOOLS-1387</key>
            <summary>XPath: XPath keyword not accepted as valid XPath expression</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="1" iconUrl="https://jira.opendaylight.org/images/icons/priorities/blocker.svg">Highest</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="sangwookha">Sangwook Ha</reporter>
                        <labels>
                            <label>regression</label>
                    </labels>
                <created>Thu, 16 Dec 2021 23:21:31 +0000</created>
                <updated>Mon, 10 Jan 2022 11:54:57 +0000</updated>
                            <resolved>Mon, 20 Dec 2021 11:04:16 +0000</resolved>
                                    <version>6.0.0</version>
                    <version>7.0.0</version>
                    <version>6.0.8</version>
                    <version>7.0.9</version>
                                    <fixVersion>8.0.0</fixVersion>
                    <fixVersion>6.0.9</fixVersion>
                    <fixVersion>7.0.11</fixVersion>
                                    <component>xpath</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="70363" author="rovarga" created="Sun, 19 Dec 2021 10:09:49 +0000"  >&lt;p&gt;Reproducer fails with:&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;org.antlr.v4.runtime.InputMismatchException
	at org.antlr.antlr4.runtime@4.9.3/org.antlr.v4.runtime.DefaultErrorStrategy.sync(DefaultErrorStrategy.java:270)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.multiplicativeExpr(xpathParser.java:1302)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.additiveExpr(xpathParser.java:1243)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.relationalExpr(xpathParser.java:1176)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.equalityExpr(xpathParser.java:1101)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.andExpr(xpathParser.java:1050)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.orExpr(xpathParser.java:999)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.expr(xpathParser.java:616)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.main(xpathParser.java:132)
	at org.opendaylight.yangtools.yang.xpath.impl@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseExpr(AntlrXPathParser.java:265)
	at org.opendaylight.yangtools.yang.xpath.impl@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser$Unqualified.parseExpression(AntlrXPathParser.java:179)
	at org.opendaylight.yangtools.yang.xpath.impl@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser$Unqualified.parseExpression(AntlrXPathParser.java:167)
	at org.opendaylight.yangtools.yang.xpath.impl@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.impl.XPathParserTest.parseExpr(XPathParserTest.java:131)
	at org.opendaylight.yangtools.yang.xpath.impl@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.impl.XPathParserTest.testAndPredicated(XPathParserTest.java:126)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
--------------- linked to ------------------
javax.xml.xpath.XPathExpressionException: mismatched input &apos;and&apos; expecting {&apos;processing-instruction&apos;, &apos;$&apos;, NodeType, Number, AxisName, &apos;/&apos;, &apos;//&apos;, &apos;(&apos;, &apos;-&apos;, &apos;.&apos;, &apos;*&apos;, &apos;..&apos;, &apos;@&apos;, Literal, NCName}
	at org.opendaylight.yangtools.yang.xpath.impl@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.impl.Utils.wrapException(Utils.java:77)
	at org.opendaylight.yangtools.yang.xpath.impl@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.impl.CapturingErrorListener.syntaxError(CapturingErrorListener.java:26)
	at org.antlr.antlr4.runtime@4.9.3/org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41)
	at org.antlr.antlr4.runtime@4.9.3/org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:544)
	at org.antlr.antlr4.runtime@4.9.3/org.antlr.v4.runtime.DefaultErrorStrategy.reportInputMismatch(DefaultErrorStrategy.java:327)
	at org.antlr.antlr4.runtime@4.9.3/org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:139)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.multiplicativeExpr(xpathParser.java:1362)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.additiveExpr(xpathParser.java:1243)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.relationalExpr(xpathParser.java:1176)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.equalityExpr(xpathParser.java:1101)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.andExpr(xpathParser.java:1050)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.orExpr(xpathParser.java:999)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.expr(xpathParser.java:616)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.main(xpathParser.java:132)
	at org.opendaylight.yangtools.yang.xpath.impl@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser.parseExpr(AntlrXPathParser.java:265)
	at org.opendaylight.yangtools.yang.xpath.impl@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser$Unqualified.parseExpression(AntlrXPathParser.java:179)
	at org.opendaylight.yangtools.yang.xpath.impl@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParser$Unqualified.parseExpression(AntlrXPathParser.java:167)
	at org.opendaylight.yangtools.yang.xpath.impl@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.impl.XPathParserTest.parseExpr(XPathParserTest.java:131)
	at org.opendaylight.yangtools.yang.xpath.impl@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.impl.XPathParserTest.testAndPredicated(XPathParserTest.java:126)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
	Suppressed: javax.xml.xpath.XPathExpressionException: mismatched input &apos;&amp;lt;EOF&amp;gt;&apos; expecting {&apos;processing-instruction&apos;, &apos;$&apos;, NodeType, Number, AxisName, &apos;/&apos;, &apos;//&apos;, &apos;(&apos;, &apos;-&apos;, &apos;.&apos;, &apos;*&apos;, &apos;..&apos;, &apos;@&apos;, Literal, NCName}
		at org.opendaylight.yangtools.yang.xpath.impl@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.impl.Utils.wrapException(Utils.java:77)
		at org.opendaylight.yangtools.yang.xpath.impl@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.impl.CapturingErrorListener.syntaxError(CapturingErrorListener.java:26)
		at org.antlr.antlr4.runtime@4.9.3/org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41)
		at org.antlr.antlr4.runtime@4.9.3/org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:544)
		at org.antlr.antlr4.runtime@4.9.3/org.antlr.v4.runtime.DefaultErrorStrategy.reportInputMismatch(DefaultErrorStrategy.java:327)
		at org.antlr.antlr4.runtime@4.9.3/org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:139)
		at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.multiplicativeExpr(xpathParser.java:1362)
		at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.additiveExpr(xpathParser.java:1243)
		at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.relationalExpr(xpathParser.java:1176)
		at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.equalityExpr(xpathParser.java:1101)
		at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.andExpr(xpathParser.java:1060)
		... 37 more
	Caused by: org.antlr.v4.runtime.InputMismatchException
		at org.antlr.antlr4.runtime@4.9.3/org.antlr.v4.runtime.DefaultErrorStrategy.sync(DefaultErrorStrategy.java:270)
		at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.multiplicativeExpr(xpathParser.java:1302)
		... 41 more
Caused by: org.antlr.v4.runtime.InputMismatchException
	at org.antlr.antlr4.runtime@4.9.3/org.antlr.v4.runtime.DefaultErrorStrategy.sync(DefaultErrorStrategy.java:270)
	at org.opendaylight.yangtools.yang.xpath.antlr@8.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.xpath.antlr.xpathParser.multiplicativeExpr(xpathParser.java:1302)
	... 41 more
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;So &apos;and&apos; is not being matched as a NCName. I think this boils down to the implicit lexer token taking over.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="33284">YANGTOOLS-1137</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|i0413z:</customfieldvalue>

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