From: Anil Vishnoi Date: Wed, 26 Nov 2014 21:28:41 +0000 (+0530) Subject: Bug 2435 - Controller/MD-SAL throwing ModifiedNodeDoesNotExistException exception... X-Git-Tag: release/lithium~821^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=108fe9ce2266372bbbb431c25d2e4d19625e97da Bug 2435 - Controller/MD-SAL throwing ModifiedNodeDoesNotExistException exception when statistics manager augment queue statistics to the node connector. Exception was thrown because parent (queue) container was not present when statistics manager tried to augment statistics. Fixed the issue by creating empty queue container and 'merge'ing it to the node connector before augmenting the statistics. Signed-off-by: Anil Vishnoi Change-Id: I7d68f3e177ccf62c7adf154e655226450a74296c --- diff --git a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/impl/StatListenCommitQueue.java b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/impl/StatListenCommitQueue.java index 07e167d1e4..f5c5689b7b 100644 --- a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/impl/StatListenCommitQueue.java +++ b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/impl/StatListenCommitQueue.java @@ -26,6 +26,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Fl import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev131103.TransactionAware; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev131103.TransactionId; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.queues.Queue; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.queues.QueueBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.queues.QueueKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; @@ -167,11 +168,13 @@ public class StatListenCommitQueue extends StatAbstractListenCommit queueStatIdent = nodeIdent + final InstanceIdentifier queueIdent = nodeIdent .child(NodeConnector.class, new NodeConnectorKey(queueStat.getNodeConnectorId())) .augmentation(FlowCapableNodeConnector.class) - .child(Queue.class, qKey).augmentation(FlowCapableNodeConnectorQueueStatisticsData.class); + .child(Queue.class, qKey); + final InstanceIdentifier queueStatIdent = queueIdent.augmentation(FlowCapableNodeConnectorQueueStatisticsData.class); existQueueKeys.remove(qKey); + tx.merge(LogicalDatastoreType.OPERATIONAL, queueIdent, new QueueBuilder().setKey(qKey).build()); tx.put(LogicalDatastoreType.OPERATIONAL, queueStatIdent, statBuild.build()); } }