From: Robert Varga Date: Tue, 9 Oct 2018 11:40:52 +0000 (+0200) Subject: Enable spotbugs in mdsal-{binding,dom}-spi X-Git-Tag: v3.0.1~46 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=4ff3ab7ea5aade87b3c647279b0470fcf8747952;p=mdsal.git Enable spotbugs in mdsal-{binding,dom}-spi This patch addresses violations and flips the switch. Change-Id: I9a0a715b26d42cff395f6448323be1b6e52b162d Signed-off-by: Robert Varga --- diff --git a/binding/mdsal-binding-spi/pom.xml b/binding/mdsal-binding-spi/pom.xml index a164150f64..3b78fb2606 100644 --- a/binding/mdsal-binding-spi/pom.xml +++ b/binding/mdsal-binding-spi/pom.xml @@ -58,7 +58,14 @@ checkstyle.violationSeverity=error + + com.github.spotbugs + spotbugs-maven-plugin + + true + + - \ No newline at end of file + diff --git a/dom/mdsal-dom-spi/pom.xml b/dom/mdsal-dom-spi/pom.xml index 215473cab4..451b7d362c 100644 --- a/dom/mdsal-dom-spi/pom.xml +++ b/dom/mdsal-dom-spi/pom.xml @@ -73,6 +73,13 @@ checkstyle.violationSeverity=error + + com.github.spotbugs + spotbugs-maven-plugin + + true + + diff --git a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DOMDataTreePrefixTable.java b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DOMDataTreePrefixTable.java index 107b8123c3..71b64dc389 100644 --- a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DOMDataTreePrefixTable.java +++ b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DOMDataTreePrefixTable.java @@ -79,7 +79,7 @@ public final class DOMDataTreePrefixTable { public void remove(final @NonNull DOMDataTreeIdentifier prefix) { final DOMDataTreePrefixTableEntry 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; } diff --git a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DefaultDOMRpcResult.java b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DefaultDOMRpcResult.java index a2c55e5d18..cfc47d090d 100644 --- a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DefaultDOMRpcResult.java +++ b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/DefaultDOMRpcResult.java @@ -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 errors; diff --git a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/SimpleDOMActionResult.java b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/SimpleDOMActionResult.java index dfbbbc53de..9a997bb635 100644 --- a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/SimpleDOMActionResult.java +++ b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/SimpleDOMActionResult.java @@ -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 errors) { this(errors, null); } diff --git a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/shard/DOMDataTreeChangeListenerAggregator.java b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/shard/DOMDataTreeChangeListenerAggregator.java index a06614e4ce..77a274f693 100644 --- a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/shard/DOMDataTreeChangeListenerAggregator.java +++ b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/shard/DOMDataTreeChangeListenerAggregator.java @@ -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); } } } diff --git a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/shard/DOMDataTreeListenerAggregator.java b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/shard/DOMDataTreeListenerAggregator.java index ff56791100..7d5a74adcc 100644 --- a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/shard/DOMDataTreeListenerAggregator.java +++ b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/shard/DOMDataTreeListenerAggregator.java @@ -93,7 +93,7 @@ public final class DOMDataTreeListenerAggregator private Map> 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 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; } diff --git a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/store/AbstractDOMStoreTransaction.java b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/store/AbstractDOMStoreTransaction.java index cc6111ff6b..0771162803 100644 --- a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/store/AbstractDOMStoreTransaction.java +++ b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/store/AbstractDOMStoreTransaction.java @@ -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 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;