Enable spotbugs in mdsal-{binding,dom}-spi 89/76789/2
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 9 Oct 2018 11:40:52 +0000 (13:40 +0200)
committerRobert Varga <nite@hq.sk>
Tue, 9 Oct 2018 13:24:51 +0000 (13:24 +0000)
This patch addresses violations and flips the switch.

Change-Id: I9a0a715b26d42cff395f6448323be1b6e52b162d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-spi/pom.xml
dom/mdsal-dom-spi/pom.xml
dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DOMDataTreePrefixTable.java
dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DefaultDOMRpcResult.java
dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/SimpleDOMActionResult.java
dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/shard/DOMDataTreeChangeListenerAggregator.java
dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/shard/DOMDataTreeListenerAggregator.java
dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/store/AbstractDOMStoreTransaction.java

index a164150f642d85be55f04087acda7b1a971e7436..3b78fb260687855cedfd9161637449179edc016d 100644 (file)
                     <propertyExpansion>checkstyle.violationSeverity=error</propertyExpansion>
                 </configuration>
             </plugin>
+            <plugin>
+                <groupId>com.github.spotbugs</groupId>
+                <artifactId>spotbugs-maven-plugin</artifactId>
+                <configuration>
+                    <failOnError>true</failOnError>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
index 215473cab4600d92512f922fbe582165292006e3..451b7d362c10fd1568b787af292c05890c6bca62 100644 (file)
                     <propertyExpansion>checkstyle.violationSeverity=error</propertyExpansion>
                 </configuration>
             </plugin>
+            <plugin>
+                <groupId>com.github.spotbugs</groupId>
+                <artifactId>spotbugs-maven-plugin</artifactId>
+                <configuration>
+                    <failOnError>true</failOnError>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
 
index 107b8123c386345fe1457a3a38b6b1c0fb3d10a2..71b64dc389ec5b28da67b0bd01e01140e6bd40da 100644 (file)
@@ -79,7 +79,7 @@ public final class DOMDataTreePrefixTable<V> {
     public void remove(final @NonNull DOMDataTreeIdentifier prefix) {
         final DOMDataTreePrefixTableEntry<V> t = roots.get(prefix.getDatastoreType());
         if (t == null) {
-            LOG.warn("Shard registration {} points to non-existent table", t);
+            LOG.warn("Shard registration {} points to non-existent table", prefix);
             return;
         }
 
index a2c55e5d184fbd4fa4b94ac4f27270ffe7de5723..cfc47d090d65939263842bc8e497b03b39676d3e 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.mdsal.dom.spi;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.Beta;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.io.Serializable;
 import java.util.Arrays;
 import java.util.Collection;
@@ -30,6 +31,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 public final class DefaultDOMRpcResult implements DOMRpcResult, Immutable, Serializable {
     private static final long serialVersionUID = 1L;
 
+    @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "Interfaces do not specify Serializable")
     private final @Nullable NormalizedNode<?, ?> result;
     private final Collection<? extends RpcError> errors;
 
index dfbbbc53de17f6f7687d91cd2b2a33e823b7190a..9a997bb635e9a2a3260aeee394333fcd521404e6 100644 (file)
@@ -13,6 +13,7 @@ import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;
 import com.google.common.collect.ImmutableList;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.Collection;
 import java.util.Optional;
 import javax.annotation.concurrent.ThreadSafe;
@@ -35,6 +36,7 @@ public final class SimpleDOMActionResult implements DOMActionResult, Immutable {
         this.output = output;
     }
 
+    @SuppressFBWarnings("NP_NULL_PARAM_DEREF_NONVIRTUAL")
     public SimpleDOMActionResult(final Collection<RpcError> errors) {
         this(errors, null);
     }
index a06614e4ce2949d3f1f824183de60408ed90cab0..77a274f6936e0ab99ba81bd4391790f5e7eb598b 100644 (file)
@@ -130,7 +130,7 @@ final class DOMDataTreeChangeListenerAggregator
             if (size != 0) {
                 // Note: it is okay to leak changes, we must never leak mutable subtrees.
                 listener.onDataTreeChanged(changes, ImmutableMap.copyOf(subtrees));
-                LOG.trace("Listener {} processed {} changes in {}", listener, clock);
+                LOG.trace("Listener {} processed {} changes in {}", listener, size, clock);
             }
         }
     }
index ff56791100fd04619e3a0a8fb446aa332e3eeeba..7d5a74adcc14d2b59668edc93c96b1493c1473ca 100644 (file)
@@ -93,7 +93,7 @@ public final class DOMDataTreeListenerAggregator
         private Map<DOMDataTreeIdentifier, NormalizedNode<?, ?>> subtrees = ImmutableMap.of();
 
         @Override
-        protected void append(final State state) {
+        protected synchronized void append(final State state) {
             if (state instanceof Changes) {
                 final Changes changesState = (Changes) state;
                 this.changes.addAll(changesState.changes);
@@ -142,7 +142,7 @@ public final class DOMDataTreeListenerAggregator
         @Override
         protected void notifyListener(final Iterator<State> iterator) {
             if (failed) {
-                iterator.forEachRemaining(state -> LOG.debug("Listener {} failed, ignoring state {}", state));
+                iterator.forEachRemaining(state -> LOG.debug("Listener {} failed, ignoring state {}", listener, state));
                 return;
             }
 
index cc6111ff6b2cab3780fae10945c8ef8ff2a5c1c0..07711628034df5bd0e03db31ca8e97152fd76010 100644 (file)
@@ -12,6 +12,7 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
 
@@ -33,6 +34,7 @@ public abstract class AbstractDOMStoreTransaction<T> implements DOMStoreTransact
         this(identifier, false);
     }
 
+    @SuppressFBWarnings("NP_STORE_INTO_NONNULL_FIELD")
     protected AbstractDOMStoreTransaction(final T identifier, final boolean debug) {
         this.identifier = requireNonNull(identifier, "Identifier must not be null.");
         this.debugContext = debug ? new Throwable().fillInStackTrace() : null;