External api proposal
[openflowplugin.git] / applications / statistics-manager / src / main / java / org / opendaylight / openflowplugin / applications / statistics / manager / impl / StatListenCommitFlow.java
index de1f4b5a0a1cd8222543a32f93950550615165f2..db2b41002334c9eebbde3400df7c5a6246622b24 100644 (file)
@@ -23,8 +23,8 @@ import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
-import org.opendaylight.openflowplugin.applications.statistics.manager.StatisticsManager;
 import org.opendaylight.openflowplugin.applications.statistics.manager.StatRpcMsgManager.TransactionCacheContainer;
+import org.opendaylight.openflowplugin.applications.statistics.manager.StatisticsManager;
 import org.opendaylight.openflowplugin.applications.statistics.manager.StatisticsManager.StatDataStoreOperation;
 import org.opendaylight.openflowplugin.applications.statistics.manager.StatisticsManager.StatDataStoreOperation.StatsManagerOperationType;
 import org.opendaylight.openflowplugin.applications.statistics.manager.impl.helper.FlowComparator;
@@ -52,8 +52,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.a
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.flow.and.statistics.map.list.FlowAndStatisticsMapList;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.flow.and.statistics.map.list.FlowAndStatisticsMapListBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.flow.statistics.FlowStatisticsBuilder;
-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.transaction.rev150304.TransactionAware;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.TransactionId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
@@ -330,7 +330,7 @@ public class StatListenCommitFlow extends StatAbstractListenCommit<Flow, Openday
                         try {
                             flowIdByHash.put(flowHashId.getKey(), flowHashId.getFlowId());
                         } catch (final Exception e) {
-                            LOG.warn("flow hashing hit a duplicate for {} -> {}. Exception %s was raised.",
+                            LOG.warn("flow hashing hit a duplicate for {} -> {}. Exception was raised: {}",
                                     flowHashId.getKey(), flowHashId.getFlowId(), e.getMessage());
                         }
                     }
@@ -354,11 +354,12 @@ public class StatListenCommitFlow extends StatAbstractListenCommit<Flow, Openday
             while(it.hasNext()) {
                 final Flow cfgFlow = it.next();
                 final FlowKey cfgKey = cfgFlow.getKey();
-                if(flowIdByHash.inverse().containsKey(cfgKey)) {
-                    it.remove();
-                } else if(FlowComparator.flowEquals(flowStat, cfgFlow)) {
-                    it.remove();
-                    return cfgKey;
+                final FlowId cfgFlowId = cfgKey.getId();
+
+                if(! flowIdByHash.inverse().containsKey(cfgFlowId)) {
+                    if(FlowComparator.flowEquals(flowStat, cfgFlow)) {
+                        return cfgKey;
+                    }
                 }
             }
             return null;