X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=applications%2Fstatistics-manager%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fapplications%2Fstatistics%2Fmanager%2Fimpl%2FStatListenCommitFlow.java;h=63f08c79dd9d173f8c7d8069705b6db4e62ff6af;hb=42a6894c46d279712feac0f317529b3525755e76;hp=9388a6bc14058bf1ba4ab02eb39230a2baea9077;hpb=6fbf0f74983718ef41a845054a514011ee74fc97;p=openflowplugin.git diff --git a/applications/statistics-manager/src/main/java/org/opendaylight/openflowplugin/applications/statistics/manager/impl/StatListenCommitFlow.java b/applications/statistics-manager/src/main/java/org/opendaylight/openflowplugin/applications/statistics/manager/impl/StatListenCommitFlow.java index 9388a6bc14..63f08c79dd 100644 --- a/applications/statistics-manager/src/main/java/org/opendaylight/openflowplugin/applications/statistics/manager/impl/StatListenCommitFlow.java +++ b/applications/statistics-manager/src/main/java/org/opendaylight/openflowplugin/applications/statistics/manager/impl/StatListenCommitFlow.java @@ -8,23 +8,26 @@ package org.opendaylight.openflowplugin.applications.statistics.manager.impl; +import com.google.common.base.Optional; +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; -import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.UUID; import java.util.concurrent.atomic.AtomicInteger; - import org.opendaylight.controller.md.sal.binding.api.DataBroker; 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.StatNodeRegistration; 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 +55,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; @@ -64,10 +67,6 @@ import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; - /** * statistics-manager * org.opendaylight.openflowplugin.applications.statistics.manager.impl @@ -89,12 +88,14 @@ public class StatListenCommitFlow extends StatAbstractListenCommit cacheNotifs = txContainer.get().getNotifications(); for (final TransactionAware notif : cacheNotifs) { @@ -158,6 +162,11 @@ public class StatListenCommitFlow extends StatAbstractListenCommit flowStats = new ArrayList(10); final InstanceIdentifier nodeIdent = InstanceIdentifier.create(Nodes.class) .child(Node.class, new NodeKey(nodeId)); @@ -220,6 +231,11 @@ public class StatListenCommitFlow extends StatAbstractListenCommit {}. Exception {}", - flowHashId.getKey(), flowHashId.getFlowId(), e); + //flowHashId.getKey() too verbose for standard log. + if(LOG.isDebugEnabled()) { + final FlowId currData = flowIdByHash.get(flowHashId.getKey()); + LOG.debug("flow hashing hit a duplicate for {} -> {}. Curr value: {} Equals:{}. Exception was raised:", + flowHashId.getKey(), flowHashId.getFlowId(), currData, flowHashId.getFlowId().equals(currData), e); + } + else + { + LOG.warn("flow hashing hit a duplicate {}. Exception was raised: {}. Enable DEBUG for more detail.", + flowHashId.getFlowId().toString().substring(0, Math.min(TRUNCATED_LOG_MESSAGE_LENGTH,flowHashId.getFlowId().toString().length())), + e.getMessage().substring(0,Math.min(TRUNCATED_LOG_MESSAGE_LENGTH,e.getMessage().length()))); + } } } } @@ -354,11 +380,12 @@ public class StatListenCommitFlow extends StatAbstractListenCommit(localList); + configFlows = new ArrayList<>(localList); } } @@ -441,7 +468,7 @@ public class StatListenCommitFlow extends StatAbstractListenCommit flowRef = tableRef.child(Flow.class, flowKey); if (nodeDeleteMap != null && flowKey.getId().getValue().startsWith(ALIEN_SYSTEM_FLOW_ID)) { final Integer lifeIndex = nodeDeleteMap.get(flowRef); - if (lifeIndex > 0) { + if (lifeIndex != null && lifeIndex > 0) { break; } else { nodeDeleteMap.remove(flowRef);