[JSONRPC-31] Binding-bridge powered responder can't accept request with missing param Created: 04/Apr/19  Updated: 04/Apr/19  Resolved: 04/Apr/19

Status: Verified
Project: jsonrpc
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Medium
Reporter: Richard Kosegi Assignee: Richard Kosegi
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

If binding-bridge powered responder is fed with empty RPC input, it complains that RPC input is not simple type:

07:45:03.764 [defaultEventExecutorGroup-3-1] ERROR org.opendaylight.jsonrpc.binding.InboundHandler - RPC invocation failed
java.lang.IllegalArgumentException: Node (<some arbitrary YANG namespace>)input is not a simple type
    at com.google.common.base.Preconditions.checkArgument(Preconditions.java:210)
    at org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream.setValue(JsonParserStream.java:329)
    at org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream.read(JsonParserStream.java:247)
    at org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream.read(JsonParserStream.java:300)
    at org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream.parse(JsonParserStream.java:163)
    at org.opendaylight.jsonrpc.impl.JsonConverter.rpcOutputConvert(JsonConverter.java:200)
    at org.opendaylight.jsonrpc.binding.InboundHandler.convertArguments(InboundHandler.java:135)
    at org.opendaylight.jsonrpc.binding.InboundHandler.handleRequest(InboundHandler.java:84)
    at org.opendaylight.jsonrpc.binding.MultiModelRequestDispatcher.handleRequest(MultiModelRequestDispatcher.java:38)
    at org.opendaylight.jsonrpc.bus.messagelib.ResponderSessionImpl.onMessage(ResponderSessionImpl.java:53)
    at org.opendaylight.jsonrpc.bus.http.WebSocketServerHandler.channelRead0(WebSocketServerHandler.java:36)
    at org.opendaylight.jsonrpc.bus.http.WebSocketServerHandler.channelRead0(WebSocketServerHandler.java:27)
    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:38)
    at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:353)
    at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:66)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.lang.Thread.run(Thread.java:748)

 



 Comments   
Comment by Richard Kosegi [ 04/Apr/19 ]

Workaround is use { "input" : {}} when called from restconf

Generated at Wed Feb 07 20:05:21 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.