} else if (message instanceof FindLeader) {
getSender().tell(
- new FindLeaderReply(
- context.getPeerAddress(currentBehavior.getLeaderId())),
+ new FindLeaderReply(getLeaderAddress()),
getSelf()
);
// TODO: Handle failure in saving the snapshot
- } else if (message instanceof FindLeader){
-
- getSender().tell(new FindLeaderReply(
- context.getPeerAddress(currentBehavior.getLeaderId())),
- getSelf());
-
} else if (message instanceof AddRaftPeer){
// FIXME : Do not add raft peers like this.
* @return A reference to the leader if known, null otherwise
*/
protected ActorSelection getLeader(){
- String leaderId = currentBehavior.getLeaderId();
- if (leaderId == null) {
- return null;
- }
- String peerAddress = context.getPeerAddress(leaderId);
- LOG.debug("getLeader leaderId = " + leaderId + " peerAddress = "
- + peerAddress);
+ String leaderAddress = getLeaderAddress();
- if(peerAddress == null){
- return null;
- }
- return context.actorSelection(peerAddress);
+ return context.actorSelection(leaderAddress);
}
/**
deleteMessages(sequenceNumber);
}
+ private String getLeaderAddress(){
+ if(isLeader()){
+ return getSelf().path().toString();
+ }
+ String leaderId = currentBehavior.getLeaderId();
+ if (leaderId == null) {
+ return null;
+ }
+ String peerAddress = context.getPeerAddress(leaderId);
+ LOG.debug("getLeaderAddress leaderId = " + leaderId + " peerAddress = "
+ + peerAddress);
+
+ return peerAddress;
+ }
+
private class ReplicatedLogImpl extends AbstractReplicatedLogImpl {