<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:55:21 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>[CONTROLLER-1364] Can not invoke zero argument RPC exposed by a Netconf device mounted on ODL using Restconf</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1364</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;If I invoke an RPC that takes zero arguments exposed by a Netconf device, I am getting the error below. This is not the case with the RPCs that takes some input arguments.&lt;/p&gt;






&lt;p&gt;java.lang.NullPointerException&lt;br/&gt;
	at org.opendaylight.controller.sal.rest.impl.NormalizedNodeJsonBodyWriter.writeTo(NormalizedNodeJsonBodyWriter.java:72)&lt;br/&gt;
	at org.opendaylight.controller.sal.rest.impl.NormalizedNodeJsonBodyWriter.writeTo(NormalizedNodeJsonBodyWriter.java:45)&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$CachedChain.doFilter(ServletHandler.java:1496)&lt;br/&gt;
	at org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:247)&lt;br/&gt;
	at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:210)&lt;br/&gt;
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1467)&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:429)&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:75)&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:696)&lt;br/&gt;
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)&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;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="25918">CONTROLLER-1364</key>
            <summary>Can not invoke zero argument RPC exposed by a Netconf device mounted on ODL using Restconf</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <status id="10004" iconUrl="https://jira.opendaylight.org/images/icons/status_generic.gif" description="">Verified</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="vdemcak@cisco.com">Vaclav Demcak</assignee>
                                    <reporter username="bvaradar@brocade.com">Balaji Varadaraju</reporter>
                        <labels>
                    </labels>
                <created>Tue, 9 Jun 2015 17:48:14 +0000</created>
                <updated>Wed, 17 Jun 2015 18:29:08 +0000</updated>
                            <resolved>Wed, 17 Jun 2015 18:29:08 +0000</resolved>
                                    <version>Lithium</version>
                                                    <component>restconf</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="50818" author="bvaradar@brocade.com" created="Tue, 9 Jun 2015 20:17:41 +0000"  >&lt;p&gt;Wanted to add this is a zero input RPC but it provides some output. So looks like we have an error while processing the output.&lt;/p&gt;</comment>
                            <comment id="50819" author="tpantelis" created="Wed, 10 Jun 2015 00:22:30 +0000"  >&lt;p&gt;I assume it&apos;s getting into the RestconfImpl#invokeRpc method that takes the &quot;noPayload&quot; string. &lt;/p&gt;

&lt;p&gt;    final ContainerSchemaNode rpcDataSchemaNode =&lt;br/&gt;
                    SchemaContextUtil.getRpcDataSchema(schemaContext,               &lt;br/&gt;
                                                  rpc.getOutput().getPath());&lt;br/&gt;
    resultNodeSchema = rpcDataSchemaNode.getDataChildByName(&lt;br/&gt;
                                  result.getResult().getNodeType());&lt;/p&gt;

&lt;p&gt;It seems that resultNodeSchema is null. However I don&apos;t understand why this code is needed when the RpcDefinition was already found earlier. Why doesn&apos;t it just use that RpcDefinition for resultNodeSchema? The NormalizedNodeXmlBodyWriter and NormalizedNodeJsonBodyWriter check for schemaPath instanceof RpcDefinition and use the output schema path.&lt;/p&gt;</comment>
                            <comment id="50820" author="tony.tkacik@gmail.com" created="Wed, 10 Jun 2015 07:36:21 +0000"  >&lt;p&gt;Seems as left-over of some refactor:&lt;/p&gt;

&lt;p&gt;first call:&lt;br/&gt;
 final ContainerSchemaNode rpcDataSchemaNode =&lt;br/&gt;
                    SchemaContextUtil.getRpcDataSchema(schemaContext,               &lt;br/&gt;
                                                  rpc.getOutput().getPath());&lt;/p&gt;

&lt;p&gt;Should return rpc/output container&lt;/p&gt;

&lt;p&gt;Second call: tries to look up output in rpc/output container instead of RPC.&lt;/p&gt;

&lt;p&gt;So it seems the resultNodeSchema should be simply = rpc.getOutput()&lt;/p&gt;


&lt;p&gt;    resultNodeSchema = rpcDataSchemaNode.getDataChildByName(&lt;br/&gt;
                                  result.getResult().getNodeType());&lt;/p&gt;

&lt;p&gt;Will try to replicate and verify.&lt;/p&gt;</comment>
                            <comment id="50821" author="tpantelis" created="Wed, 10 Jun 2015 11:30:15 +0000"  >&lt;p&gt;Actually when I tried it with a no-input rpc with output, the code path was not thru the &quot;noPayload&quot; method but thru the NormalizedNodeContext (&quot;with payload&quot;) method and getData() was null. The rpc worked correctly.&lt;/p&gt;

&lt;p&gt;I&apos;ll debug it with Bala to see the code path for his failed mounted rpc.&lt;/p&gt;</comment>
                            <comment id="50822" author="vdemcak@cisco.com" created="Mon, 15 Jun 2015 10:15:54 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/22573/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/22573/&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="25796">CONTROLLER-1242</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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3650</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=3650]]></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="10373"><![CDATA[Lithium-RC3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10202" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Priority</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10301"><![CDATA[Normal]]></customfieldvalue>

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

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