<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:52:53 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-323] You can&apos;t serialize an an AugmentationIdentifier</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-323</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;If you have yang like this:&lt;/p&gt;

&lt;p&gt;leaf flow-pointer {&lt;br/&gt;
  type instance-identifier;&lt;br/&gt;
}&lt;/p&gt;

&lt;p&gt;and then you put an instance identifier that points to a flow like this to it:&lt;br/&gt;
/nodes/node/&lt;span class=&quot;error&quot;&gt;&amp;#91;id&amp;#93;&lt;/span&gt;/flow-capable-node/tables/table/&lt;span class=&quot;error&quot;&gt;&amp;#91;tableid&amp;#93;&lt;/span&gt;/flow/&lt;span class=&quot;error&quot;&gt;&amp;#91;flowid&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;The result is that when we try to serialize the the flow-pointer, we end up calling AugmentationIdentifer.getNodeType() when we get to the flow capable node, and that throws an UnsupportedOperationException() which results in not being able to get the data.&lt;/p&gt;

&lt;p&gt;The relevant line is 632 of YangInstanceIdentifer.java.&lt;/p&gt;

&lt;p&gt;The end result of all of this is that we get a 500 internal server error when we try to read it using RESTconf.&lt;/p&gt;


&lt;p&gt;Here&apos;s the exact thing:&lt;/p&gt;

&lt;p&gt;&amp;lt;html&amp;gt;&lt;br/&gt;
&amp;lt;head&amp;gt;&lt;br/&gt;
&amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot;/&amp;gt;&lt;br/&gt;
&amp;lt;title&amp;gt;Error 500 Server Error&amp;lt;/title&amp;gt;&lt;br/&gt;
&amp;lt;/head&amp;gt;&lt;br/&gt;
&amp;lt;body&amp;gt;&amp;lt;h2&amp;gt;HTTP ERROR 500&amp;lt;/h2&amp;gt;&lt;br/&gt;
&amp;lt;p&amp;gt;Problem accessing /restconf/config/paths:paths/path/test1. Reason:&lt;br/&gt;
&amp;lt;pre&amp;gt; Server Error&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;h3&amp;gt;Caused by:&amp;lt;/h3&amp;gt;&amp;lt;pre&amp;gt;java.lang.UnsupportedOperationException: Augmentation node has no QName&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier$AugmentationIdentifier.getNodeType(YangInstanceIdentifier.java:632)&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.util.AbstractStringInstanceIdentifierCodec.serialize(AbstractStringInstanceIdentifierCodec.java:43)&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.util.AbstractStringInstanceIdentifierCodec.serialize(AbstractStringInstanceIdentifierCodec.java:33)&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.codec.gson.JSONNormalizedNodeStreamWriter.leafSetEntryNode(JSONNormalizedNodeStreamWriter.java:153)&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.wasProcessAsSimpleNode(NormalizedNodeWriter.java:140)&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.write(NormalizedNodeWriter.java:107)&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.writeChildren(NormalizedNodeWriter.java:164)&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.wasProcessedAsCompositeNode(NormalizedNodeWriter.java:219)&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.write(NormalizedNodeWriter.java:103)&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.writeChildren(NormalizedNodeWriter.java:164)&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter$OrderedNormalizedNodeWriter.writeMapEntryNode(NormalizedNodeWriter.java:248)&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.wasProcessedAsCompositeNode(NormalizedNodeWriter.java:183)&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.write(NormalizedNodeWriter.java:103)&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.writeChildren(NormalizedNodeWriter.java:164)&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.wasProcessedAsCompositeNode(NormalizedNodeWriter.java:213)&lt;br/&gt;
at org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter.write(NormalizedNodeWriter.java:103)&lt;br/&gt;
at org.opendaylight.controller.sal.rest.impl.NormalizedNodeJsonBodyWriter.writeTo(NormalizedNodeJsonBodyWriter.java:91)&lt;br/&gt;
at org.opendaylight.controller.sal.rest.impl.NormalizedNodeJsonBodyWriter.writeTo(NormalizedNodeJsonBodyWriter.java:43)&lt;br/&gt;
at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:306)&lt;br/&gt;
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1479)&lt;br/&gt;
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)&lt;br/&gt;
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)&lt;br/&gt;
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)&lt;br/&gt;
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)&lt;br/&gt;
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)&lt;br/&gt;
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)&lt;br/&gt;
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)&lt;br/&gt;
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)&lt;br/&gt;
at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:69)&lt;br/&gt;
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)&lt;br/&gt;
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)&lt;br/&gt;
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)&lt;br/&gt;
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)&lt;br/&gt;
at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:240)&lt;br/&gt;
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)&lt;br/&gt;
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)&lt;br/&gt;
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)&lt;br/&gt;
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)&lt;br/&gt;
at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:77)&lt;br/&gt;
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)&lt;br/&gt;
at org.eclipse.jetty.server.Server.handle(Server.java:370)&lt;br/&gt;
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)&lt;br/&gt;
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)&lt;br/&gt;
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)&lt;br/&gt;
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)&lt;br/&gt;
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)&lt;br/&gt;
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)&lt;br/&gt;
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)&lt;br/&gt;
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)&lt;br/&gt;
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)&lt;br/&gt;
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)&lt;br/&gt;
at java.lang.Thread.run(Thread.java:745)&lt;br/&gt;
&amp;lt;/pre&amp;gt;&lt;br/&gt;
&amp;lt;hr /&amp;gt;&amp;lt;i&amp;gt;&amp;lt;small&amp;gt;Powered by Jetty://&amp;lt;/small&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;br/&amp;gt;&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="22743">YANGTOOLS-323</key>
            <summary>You can&apos;t serialize an an AugmentationIdentifier</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <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="-1">Unassigned</assignee>
                                    <reporter username="colindixon">Colin Dixon</reporter>
                        <labels>
                    </labels>
                <created>Fri, 19 Sep 2014 21:25:19 +0000</created>
                <updated>Sun, 10 Apr 2022 18:35:20 +0000</updated>
                            <resolved>Wed, 18 Mar 2015 12:47:03 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="43076" author="tony.tkacik@gmail.com" created="Sat, 20 Sep 2014 08:52:35 +0000"  >&lt;p&gt;AugmentationIdentifier is YANGTools/MD-SAL specific&lt;br/&gt;
concept which eases navigation in parsed data, but&lt;br/&gt;
does not exists in XML Instance Identifier.&lt;br/&gt;
AugmentationIdentifier from XML perspective identifies&lt;br/&gt;
subset of child nodes of parent element, from which&lt;br/&gt;
also next path argument select element from that subset&lt;br/&gt;
so it is safe to leave it during serialization.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/11395&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/11395&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="43077" author="colin@colindixon.com" created="Thu, 25 Sep 2014 21:06:08 +0000"  >&lt;p&gt;Vasu says that this still fails for XML, but fixing it for JSON is enough for us to have a work-around.&lt;/p&gt;</comment>
                            <comment id="43078" author="george.y.zhao@huawei.com" created="Mon, 19 Jan 2015 23:27:58 +0000"  >&lt;p&gt;move to Lithium&lt;/p&gt;</comment>
                            <comment id="43079" author="tony.tkacik@gmail.com" created="Wed, 18 Mar 2015 12:47:03 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/15900/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/15900/&lt;/a&gt;&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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1991</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=1991]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10206" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Issue Type</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10300"><![CDATA[Bug]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10204" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>ODL SR Target Milestone</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10315"><![CDATA[Lithium]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i026in:</customfieldvalue>

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