}
boolean callElection() {
List<Member> members = new ArrayList<Member>(this.members.values());
List<Member> sorted = sortMemberList(members);
AsyncMapRequest request = new AsyncMapRequest();
boolean doCall = false;
for (Member member : sorted) {
if (this.local.equals(member)) {
doCall = true;
} else if (doCall) {
ElectionMessage msg = new ElectionMessage();
msg.setMember(this.local);
msg.setType(ElectionMessage.MessageType.ELECTION);
sendAsyncStateRequest(request, member, msg);
}
}
boolean result = request.isSuccess(getHeartBeatInterval());
return result;
}