Update MRI projects for Aluminium
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / statistics / services / compatibility / MeterStatisticsToNotificationTransformer.java
index 3b40c01316625c1fe8bbda02d434933ef0042dfe..de3788bb936657665ec95950f8dab38a2d9afb3e 100644 (file)
@@ -8,9 +8,13 @@
 
 package org.opendaylight.openflowplugin.impl.statistics.services.compatibility;
 
+import com.google.common.collect.Lists;
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Optional;
+import java.util.Set;
+import java.util.stream.Collectors;
 import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo;
 import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorExecutor;
@@ -61,7 +65,15 @@ public final class MeterStatisticsToNotificationTransformer {
             final Optional<List<MeterStats>> meterStatsList =
                     convertorExecutor.convert(replyBody.getMeterStats(), data);
 
-            meterStatsList.ifPresent(meterStats -> notification.getMeterStats().addAll(meterStats));
+            meterStatsList.ifPresent(meterStats -> {
+                if (notification.getMeterStats() == null) {
+                    notification.setMeterStats(Lists.newArrayList(meterStats));
+                } else {
+                    Set<MeterStats> stats = new HashSet<>(notification.getMeterStats().values());
+                    stats.addAll(meterStats);
+                    notification.setMeterStats(stats.stream().collect(Collectors.toList()));
+                }
+            });
         }
 
         return notification.build();