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;
private List<ServerInfo> 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
}
out.writeObject(i.getId());
out.writeBoolean(i.isVoting());
}
- }
+ }
@Override
public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException {
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<ServerInfo> serverConfig;
private final boolean migrated;
private int serializedSize = -1;
- private ServerConfigurationPayload(final @Nonnull List<ServerInfo> serverConfig, boolean migrated) {
+ private ServerConfigurationPayload(@Nonnull final List<ServerInfo> serverConfig, boolean migrated) {
this.serverConfig = ImmutableList.copyOf(serverConfig);
this.migrated = migrated;
}
- public ServerConfigurationPayload(final @Nonnull List<ServerInfo> serverConfig) {
+ public ServerConfigurationPayload(@Nonnull final List<ServerInfo> serverConfig) {
this(serverConfig, false);
}
@Deprecated
- public static ServerConfigurationPayload createMigrated(final @Nonnull List<ServerInfo> serverConfig) {
+ public static ServerConfigurationPayload createMigrated(@Nonnull final List<ServerInfo> serverConfig) {
return new ServerConfigurationPayload(serverConfig, true);
}
return migrated;
}
- public @Nonnull List<ServerInfo> getServerConfig() {
+ @Nonnull
+ public List<ServerInfo> getServerConfig() {
return serverConfig;
}