diff options
Diffstat (limited to 'src/main/java/protocols/implementations/VSRaftProtocol.java')
| -rw-r--r-- | src/main/java/protocols/implementations/VSRaftProtocol.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/main/java/protocols/implementations/VSRaftProtocol.java b/src/main/java/protocols/implementations/VSRaftProtocol.java index d0066e0..6828b34 100644 --- a/src/main/java/protocols/implementations/VSRaftProtocol.java +++ b/src/main/java/protocols/implementations/VSRaftProtocol.java @@ -384,18 +384,21 @@ public class VSRaftProtocol extends VSAbstractProtocol { int messageTerm = recvMessage.getInteger("term"); int messageLeaderId = recvMessage.getInteger("leaderId"); int messageLogIndex = recvMessage.getInteger("logIndex"); + boolean isSameTerm = messageTerm == currentTerm; + + if (messageTerm < currentTerm) { + return; + } if (messageTerm > currentTerm) { becomeFollower(messageTerm, messageLeaderId); - } else { - return; } if (messageLogIndex != logIndex + 1) { return; } - if (messageTerm == currentTerm) { + if (isSameTerm) { leaderId = messageLeaderId; isLeader = false; isCandidate = false; |
