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%2Fmessages%2FRequestVoteReply.java;h=9b7a2f34566342ecd86a52aec1e96ef783f4b9ef;hb=4ecb8ecaf04594b3312a44d801423f515ea445b3;hp=865d4c287bd7b63cd051ef46b8db2b959f69d4b1;hpb=c31509c7a6630e54a9f9749a643fed5e1a1ad380;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteReply.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteReply.java index 865d4c287b..9b7a2f3456 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteReply.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteReply.java @@ -8,10 +8,15 @@ package org.opendaylight.controller.cluster.raft.messages; -public class RequestVoteReply extends AbstractRaftRPC { +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; + +public final class RequestVoteReply extends AbstractRaftRPC { private static final long serialVersionUID = 8427899326488775660L; - // true means candidate received vot + // true means candidate received vote private final boolean voteGranted; public RequestVoteReply(long term, boolean voteGranted) { @@ -19,19 +24,50 @@ public class RequestVoteReply extends AbstractRaftRPC { this.voteGranted = voteGranted; } - @Override - public long getTerm() { - return term; - } - public boolean isVoteGranted() { return voteGranted; } @Override public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("RequestVoteReply [term=").append(term).append(", voteGranted=").append(voteGranted).append("]"); - return builder.toString(); + return "RequestVoteReply [term=" + getTerm() + ", voteGranted=" + voteGranted + "]"; + } + + private Object writeReplace() { + return new Proxy(this); + } + + private static class Proxy implements Externalizable { + private static final long serialVersionUID = 1L; + + private RequestVoteReply requestVoteReply; + + // 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() { + } + + Proxy(RequestVoteReply requestVoteReply) { + this.requestVoteReply = requestVoteReply; + } + + @Override + public void writeExternal(ObjectOutput out) throws IOException { + out.writeLong(requestVoteReply.getTerm()); + out.writeBoolean(requestVoteReply.voteGranted); + } + + @Override + public void readExternal(ObjectInput in) throws IOException { + long term = in.readLong(); + boolean voteGranted = in.readBoolean(); + + requestVoteReply = new RequestVoteReply(term, voteGranted); + } + + private Object readResolve() { + return requestVoteReply; + } } }