From 848c94b72a614af4a0c4f91f5a2d7d76cceb10a8 Mon Sep 17 00:00:00 2001 From: Srini Seetharaman Date: Wed, 31 May 2017 10:30:12 -0700 Subject: [PATCH] Fixing NPE caused when rpc definition does not include "input" or "output" Change-Id: I90cd8da7abfbb24015a87c1b2a7cf7dc3f047b4a Signed-off-by: Srini Seetharaman --- .../sal/rest/doc/impl/BaseYangSwaggerGenerator.java | 8 ++++++-- .../netconf/sal/rest/doc/impl/ModelGenerator.java | 8 +++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java index c6c7f1d28d..17885056a9 100644 --- a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java +++ b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java @@ -419,10 +419,14 @@ public class BaseYangSwaggerGenerator { operationSpec.setMethod("POST"); operationSpec.setNotes(rpcDefn.getDescription()); operationSpec.setNickname(rpcDefn.getQName().getLocalName()); - if (!rpcDefn.getOutput().getChildNodes().isEmpty()) { + if (rpcDefn.getOutput() != null && + rpcDefn.getOutput().getChildNodes() != null && + !rpcDefn.getOutput().getChildNodes().isEmpty()) { operationSpec.setType("(" + rpcDefn.getQName().getLocalName() + ")output" + OperationBuilder.TOP); } - if (!rpcDefn.getInput().getChildNodes().isEmpty()) { + if (rpcDefn.getInput() != null && + rpcDefn.getInput().getChildNodes() != null && + !rpcDefn.getInput().getChildNodes().isEmpty()) { final Parameter payload = new Parameter(); payload.setParamType("body"); payload.setType("(" + rpcDefn.getQName().getLocalName() + ")input" + OperationBuilder.TOP); diff --git a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/ModelGenerator.java b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/ModelGenerator.java index 75bfe75d0c..ede1f20c43 100644 --- a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/ModelGenerator.java +++ b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/ModelGenerator.java @@ -150,7 +150,8 @@ public class ModelGenerator { final String moduleName = module.getName(); for (final RpcDefinition rpc : rpcs) { final ContainerSchemaNode input = rpc.getInput(); - if (!input.getChildNodes().isEmpty()) { + if (input !=null && input.getChildNodes() != null && + !input.getChildNodes().isEmpty()) { final JSONObject properties = processChildren(input.getChildNodes(), moduleName, models, true, schemaContext); final String filename = "(" + rpc.getQName().getLocalName() + ")input"; @@ -164,7 +165,8 @@ public class ModelGenerator { } final ContainerSchemaNode output = rpc.getOutput(); - if (!output.getChildNodes().isEmpty()) { + if (output !=null && output.getChildNodes() != null && + !output.getChildNodes().isEmpty()) { final JSONObject properties = processChildren(output.getChildNodes(), moduleName, models, true, schemaContext); final String filename = "(" + rpc.getQName().getLocalName() + ")output"; final JSONObject childSchema = getSchemaTemplate(); @@ -606,4 +608,4 @@ public class ModelGenerator { return schemaJSON; } -} \ No newline at end of file +} -- 2.36.6