Bug 3104 - fixed XmlNormalizedNodeBodyReader bug when data started at 77/22077/2
authorJan Hajnar <jhajnar@cisco.com>
Thu, 28 May 2015 09:41:35 +0000 (11:41 +0200)
committerGerrit Code Review <gerrit@opendaylight.org>
Mon, 8 Jun 2015 11:33:25 +0000 (11:33 +0000)
MapEntryNode

Change-Id: I7b19e514846ecfe7a9a29254b6fade8c876247e5
Signed-off-by: Jan Hajnar <jhajnar@cisco.com>
(cherry picked from commit f957b6bf9f120d6648b02b9a7624d43db9de7b7d)

opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/XmlNormalizedNodeBodyReader.java

index 84cd66051856530aa0fcc62ec534fb1d12c7563e..50186b8dc76ecece25002c1f6f288f6922d0044d 100644 (file)
@@ -154,12 +154,6 @@ public class XmlNormalizedNodeBodyReader extends AbstractIdentifierAwareJaxRsPro
             }
         }
 
-        YangInstanceIdentifier fullIIToData = YangInstanceIdentifier.create(Iterables.concat(
-                pathContext.getInstanceIdentifier().getPathArguments(), iiToDataList));
-
-        outIIContext = new InstanceIdentifierContext<>(fullIIToData, pathContext.getSchemaNode(), pathContext.getMountPoint(),
-                pathContext.getSchemaContext());
-
         NormalizedNode<?, ?> parsed = null;
 
         if(schemaNode instanceof ContainerSchemaNode) {
@@ -167,9 +161,16 @@ public class XmlNormalizedNodeBodyReader extends AbstractIdentifierAwareJaxRsPro
         } else if(schemaNode instanceof ListSchemaNode) {
             final ListSchemaNode casted = (ListSchemaNode) schemaNode;
             parsed = parserFactory.getMapEntryNodeParser().parse(elements, casted);
+            iiToDataList.add(parsed.getIdentifier());
         }
         // FIXME : add another DataSchemaNode extensions e.g. LeafSchemaNode
 
+        YangInstanceIdentifier fullIIToData = YangInstanceIdentifier.create(Iterables.concat(
+                pathContext.getInstanceIdentifier().getPathArguments(), iiToDataList));
+
+        outIIContext = new InstanceIdentifierContext<>(fullIIToData, pathContext.getSchemaNode(), pathContext.getMountPoint(),
+                pathContext.getSchemaContext());
+
         return new NormalizedNodeContext(outIIContext, parsed);
     }