Fix Nested YANG 1.1 Action invocation
[netconf.git] / restconf / restconf-nb-rfc8040 / src / main / java / org / opendaylight / restconf / nb / rfc8040 / jersey / providers / JsonNormalizedNodeBodyReader.java
index 37a39b62d9c3874d5e0be9ae8eb498152dc0521b..c3c82df7561abb10e6dd5bb8dfe7bb1f9c757e48 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.restconf.nb.rfc8040.jersey.providers;
 
 import com.google.common.collect.Iterables;
 import com.google.gson.stream.JsonReader;
-import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.nio.charset.StandardCharsets;
@@ -42,6 +41,7 @@ import org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
 import org.opendaylight.yangtools.yang.data.impl.schema.ResultAlreadySetException;
+import org.opendaylight.yangtools.yang.model.api.OperationDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
@@ -62,7 +62,7 @@ public class JsonNormalizedNodeBodyReader extends AbstractNormalizedNodeBodyRead
     @SuppressWarnings("checkstyle:IllegalCatch")
     @Override
     protected NormalizedNodeContext readBody(final InstanceIdentifierContext<?> path, final InputStream entityStream)
-            throws IOException, WebApplicationException {
+            throws WebApplicationException {
         try {
             return readFrom(path, entityStream, isPost());
         } catch (final Exception e) {
@@ -72,8 +72,7 @@ public class JsonNormalizedNodeBodyReader extends AbstractNormalizedNodeBodyRead
     }
 
     public static NormalizedNodeContext readFrom(
-            final InstanceIdentifierContext<?> path, final InputStream entityStream, final boolean isPost)
-            throws IOException {
+            final InstanceIdentifierContext<?> path, final InputStream entityStream, final boolean isPost) {
         final NormalizedNodeResult resultHolder = new NormalizedNodeResult();
         final NormalizedNodeStreamWriter writer = ImmutableNormalizedNodeStreamWriter.from(resultHolder);
 
@@ -114,7 +113,9 @@ public class JsonNormalizedNodeBodyReader extends AbstractNormalizedNodeBodyRead
                 iiToDataList.add(new YangInstanceIdentifier.NodeIdentifier(result.getNodeType()));
                 iiToDataList.add(result.getIdentifier());
             } else {
-                iiToDataList.add(result.getIdentifier());
+                if (!(parentSchema instanceof OperationDefinition)) {
+                    iiToDataList.add(result.getIdentifier());
+                }
             }
         } else {
             if (result instanceof MapNode) {