Fixing NPE caused when rpc definition does not include "input" or "output" 70/58070/1
authorSrini Seetharaman <srini.seetharaman@gmail.com>
Wed, 31 May 2017 17:30:12 +0000 (10:30 -0700)
committerSrini Seetharaman <srini.seetharaman@gmail.com>
Wed, 31 May 2017 17:30:12 +0000 (10:30 -0700)
Change-Id: I90cd8da7abfbb24015a87c1b2a7cf7dc3f047b4a
Signed-off-by: Srini Seetharaman <srini.seetharaman@gmail.com>
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/ModelGenerator.java

index c6c7f1d28d23f2750adb8a895915fb7120e5f02d..17885056a930fdf5eefefce6e1d8e547a87012b5 100644 (file)
@@ -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);
index 75bfe75d0cd3d5ca00c586851690dd91f031633b..ede1f20c43c2a6ff7bfc9c1129248370359db881 100644 (file)
@@ -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
+}