X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fspi%2FDefaultDOMRpcResult.java;h=925a356a09f0f6bf1a046d20c39b48b8fdf2c7c3;hb=refs%2Fchanges%2F11%2F80211%2F6;hp=269fd3537cc794402a5a4557065bcb6897fc1eea;hpb=e3998d55e33da9f6ecb69da75ecc71a047b6362b;p=controller.git diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/DefaultDOMRpcResult.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/DefaultDOMRpcResult.java index 269fd3537c..925a356a09 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/DefaultDOMRpcResult.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/DefaultDOMRpcResult.java @@ -7,14 +7,16 @@ */ package org.opendaylight.controller.md.sal.dom.spi; +import static java.util.Objects.requireNonNull; + import com.google.common.annotations.Beta; -import com.google.common.base.Preconditions; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.Serializable; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Objects; -import javax.annotation.Nonnull; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.md.sal.dom.api.DOMRpcResult; import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.yang.common.RpcError; @@ -26,7 +28,15 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; @Beta public final class DefaultDOMRpcResult implements DOMRpcResult, Immutable, Serializable { private static final long serialVersionUID = 1L; - private final Collection errors; + + // Flagged as "Non-transient non-serializable instance field" - the Collection is Serializable but the RpcError + // interface isn't. In lieu of changing the interface, we assume the implementation is Serializable which is + // reasonable since the only implementation that is actually used is from the RpcResultBuilder. + @SuppressFBWarnings("SE_BAD_FIELD") + private final Collection errors; + + // Unfortunately the NormalizedNode interface isn't Serializable but we assume the implementations are. + @SuppressFBWarnings("SE_BAD_FIELD") private final NormalizedNode result; private static Collection asCollection(final RpcError... errors) { @@ -46,20 +56,21 @@ public final class DefaultDOMRpcResult implements DOMRpcResult, Immutable, Seria } public DefaultDOMRpcResult(final NormalizedNode result) { - this(result, Collections.emptyList()); + this(result, Collections.emptyList()); } - public DefaultDOMRpcResult(final NormalizedNode result, final @Nonnull Collection errors) { + public DefaultDOMRpcResult(final NormalizedNode result, + final @NonNull Collection errors) { this.result = result; - this.errors = Preconditions.checkNotNull(errors); + this.errors = requireNonNull(errors); } - public DefaultDOMRpcResult(final @Nonnull Collection errors) { + public DefaultDOMRpcResult(final @NonNull Collection errors) { this(null, errors); } @Override - public @Nonnull Collection getErrors() { + public Collection getErrors() { return errors; }