Reduce JSR305 proliferation
[controller.git] / opendaylight / md-sal / mdsal-trace / dom-impl / src / main / java / org / opendaylight / controller / md / sal / trace / closetracker / impl / CloseTrackedRegistry.java
index 4e608396303b94e2dd1bca31130349a856ac7ebc..7f99824601d986d2527cba3e3dfcfb03168ab863 100644 (file)
@@ -10,8 +10,10 @@ package org.opendaylight.controller.md.sal.trace.closetracker.impl;
 import static java.util.Arrays.asList;
 import static java.util.Collections.emptyList;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -31,8 +33,8 @@ public class CloseTrackedRegistry<T extends CloseTracked<T>> {
     private final Object anchor;
     private final String createDescription;
 
-    private final Set<CloseTracked<T>> tracked = new ConcurrentSkipListSet<>(
-        (o1, o2) -> Integer.compare(System.identityHashCode(o1), System.identityHashCode(o2)));
+    private final Set<CloseTracked<T>> tracked =
+        new ConcurrentSkipListSet<>(Comparator.comparingInt(System::identityHashCode));
 
     private final boolean isDebugContextEnabled;
 
@@ -87,6 +89,8 @@ public class CloseTrackedRegistry<T extends CloseTracked<T>> {
      *         debugContextEnabled is false), and value is the number of open
      *         instances created at that place in the code.
      */
+    // For some reason, FB sees 'map' as useless but it clearly isn't.
+    @SuppressFBWarnings("UC_USELESS_OBJECT")
     public Set<CloseTrackedRegistryReportEntry<T>> getAllUnique() {
         Map<List<StackTraceElement>, Long> map = new HashMap<>();
         Set<CloseTracked<T>> copyOfTracked = new HashSet<>(tracked);
@@ -98,16 +102,13 @@ public class CloseTrackedRegistry<T extends CloseTracked<T>> {
         }
 
         Set<CloseTrackedRegistryReportEntry<T>> report = new HashSet<>();
-        map.forEach((stackTraceElements, number) -> {
-            copyOfTracked.stream().filter(closeTracked -> {
-                StackTraceElement[] closeTrackedStackTraceArray = closeTracked.getAllocationContextStackTrace();
-                List<StackTraceElement> closeTrackedStackTraceElements =
-                        closeTrackedStackTraceArray != null ? asList(closeTrackedStackTraceArray) : emptyList();
-                return closeTrackedStackTraceElements.equals(stackTraceElements);
-            }).findAny().ifPresent(exampleCloseTracked -> {
-                report.add(new CloseTrackedRegistryReportEntry<>(exampleCloseTracked, number, stackTraceElements));
-            });
-        });
+        map.forEach((stackTraceElements, number) -> copyOfTracked.stream().filter(closeTracked -> {
+            StackTraceElement[] closeTrackedStackTraceArray = closeTracked.getAllocationContextStackTrace();
+            List<StackTraceElement> closeTrackedStackTraceElements =
+                closeTrackedStackTraceArray != null ? asList(closeTrackedStackTraceArray) : emptyList();
+            return closeTrackedStackTraceElements.equals(stackTraceElements);
+        }).findAny().ifPresent(exampleCloseTracked -> report.add(
+            new CloseTrackedRegistryReportEntry<>(exampleCloseTracked, number, stackTraceElements))));
         return report;
     }