This removes the potential inconsistency in IsolatedLeader, where the internal
field (state) would be seen as Leader whereas the reported value (state()) would be
IsolatedLeader.
Change-Id: I079f934e31bb52b306ccc21e16b6c23442e87ce4
Signed-off-by: Robert Varga <rovarga@cisco.com>
private Optional<SnapshotHolder> snapshot;
private Optional<SnapshotHolder> snapshot;
- public AbstractLeader(RaftActorContext context) {
- super(context, RaftState.Leader);
+ protected AbstractLeader(RaftActorContext context, RaftState state) {
+ super(context, state);
setLeaderPayloadVersion(context.getPayloadVersion());
setLeaderPayloadVersion(context.getPayloadVersion());
- public RaftState state() {
+ public final RaftState state() {
*/
public class IsolatedLeader extends AbstractLeader {
public IsolatedLeader(RaftActorContext context) {
*/
public class IsolatedLeader extends AbstractLeader {
public IsolatedLeader(RaftActorContext context) {
+ super(context, RaftState.IsolatedLeader);
}
// we received an Append Entries reply, we should switch the Behavior to Leader
}
// we received an Append Entries reply, we should switch the Behavior to Leader
-
- @Override
- public RaftState state() {
- return RaftState.IsolatedLeader;
- }
private @Nullable LeadershipTransferContext leadershipTransferContext;
public Leader(RaftActorContext context) {
private @Nullable LeadershipTransferContext leadershipTransferContext;
public Leader(RaftActorContext context) {
+ super(context, RaftState.Leader);
isolatedLeaderCheck = Stopwatch.createStarted();
}
isolatedLeaderCheck = Stopwatch.createStarted();
}