X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2Fpersisted%2FServerConfigurationPayload.java;h=82c049d7cfd54ccae50fa1ad9048c02b550ba8ac;hb=e7512222d7d9e3149feb6a90eeb726e9391887fa;hp=bd9bb3e417426113ea5ebaf2849df0a4d407607d;hpb=9d5ec5cdd146a56bc03e35b6718e9492a5c8410a;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayload.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayload.java index bd9bb3e417..82c049d7cf 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayload.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/persisted/ServerConfigurationPayload.java @@ -8,12 +8,14 @@ package org.opendaylight.controller.cluster.raft.persisted; import com.google.common.collect.ImmutableList; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.ByteArrayOutputStream; import java.io.Externalizable; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import java.io.ObjectOutputStream; +import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; @@ -27,12 +29,15 @@ import org.slf4j.LoggerFactory; * * @author Thomas Pantelis */ -public final class ServerConfigurationPayload extends Payload implements PersistentPayload, MigratedSerializable { +public final class ServerConfigurationPayload extends Payload implements PersistentPayload, Serializable { private static final class Proxy implements Externalizable { private static final long serialVersionUID = 1L; private List serverConfig; + // checkstyle flags the public modifier as redundant which really doesn't make sense since it clearly isn't + // redundant. It is explicitly needed for Java serialization to be able to create instances via reflection. + @SuppressWarnings("checkstyle:RedundantModifier") public Proxy() { // For Externalizable } @@ -48,7 +53,7 @@ public final class ServerConfigurationPayload extends Payload implements Persist out.writeObject(i.getId()); out.writeBoolean(i.isVoting()); } - } + } @Override public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { @@ -69,31 +74,18 @@ public final class ServerConfigurationPayload extends Payload implements Persist private static final Logger LOG = LoggerFactory.getLogger(ServerConfigurationPayload.class); private static final long serialVersionUID = 1L; + @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "This field is not Serializable but this class " + + "implements writeReplace to delegate serialization to a Proxy class and thus instances of this class " + + "aren't serialized. FindBugs does not recognize this.") private final List serverConfig; - private final boolean migrated; private int serializedSize = -1; - private ServerConfigurationPayload(final @Nonnull List serverConfig, boolean migrated) { + public ServerConfigurationPayload(@Nonnull final List serverConfig) { this.serverConfig = ImmutableList.copyOf(serverConfig); - this.migrated = migrated; - } - - public ServerConfigurationPayload(final @Nonnull List serverConfig) { - this(serverConfig, false); - } - - @Deprecated - public static ServerConfigurationPayload createMigrated(final @Nonnull List serverConfig) { - return new ServerConfigurationPayload(serverConfig, true); } - @Deprecated - @Override - public boolean isMigrated() { - return migrated; - } - - public @Nonnull List getServerConfig() { + @Nonnull + public List getServerConfig() { return serverConfig; } @@ -120,8 +112,7 @@ public final class ServerConfigurationPayload extends Payload implements Persist return "ServerConfigurationPayload [serverConfig=" + serverConfig + "]"; } - @Override - public Object writeReplace() { + private Object writeReplace() { return new Proxy(this); } }