Fix bug 2821 - restconf RPC parsing returns http status 500
[controller.git] / opendaylight / md-sal / sal-rest-connector / src / main / java / org / opendaylight / controller / sal / rest / impl / XmlNormalizedNodeBodyReader.java
index 8a73db9d9338992ebf01f63877711bb261a1067c..bf668fa7fdd1583a2d0f3626d8f5e633a5da51b7 100644 (file)
@@ -85,6 +85,11 @@ public class XmlNormalizedNodeBodyReader extends AbstractIdentifierAwareJaxRsPro
         try {
             final Optional<InstanceIdentifierContext> path = getIdentifierWithSchema();
 
+            if (entityStream.available() < 1) {
+                // represent empty nopayload input
+                return new NormalizedNodeContext(path.get(), null);
+            }
+
             final DocumentBuilder dBuilder;
             try {
                 dBuilder = BUILDERFACTORY.newDocumentBuilder();
@@ -96,7 +101,7 @@ public class XmlNormalizedNodeBodyReader extends AbstractIdentifierAwareJaxRsPro
             final NormalizedNode<?, ?> result = parse(path.get(),doc);
             return new NormalizedNodeContext(path.get(),result);
         } catch (final Exception e) {
-            LOG.debug("Error parsing json input", e);
+            LOG.debug("Error parsing xml input", e);
 
             throw new RestconfDocumentedException("Error parsing input: " + e.getMessage(), ErrorType.PROTOCOL,
                     ErrorTag.MALFORMED_MESSAGE);