}
@Override
- public void handleCommand(final Object message) {
+ public void handleNonRaftCommand(final Object message) {
if(message instanceof RegisterCandidateLocal) {
onRegisterCandidateLocal((RegisterCandidateLocal) message);
} else if(message instanceof UnregisterCandidateLocal) {
} else if(message instanceof SelectOwner) {
onSelectOwner((SelectOwner) message);
} else if(!commitCoordinator.handleMessage(message, this)) {
- super.handleCommand(message);
+ super.handleNonRaftCommand(message);
}
}
// So if there are 2 peers and 1 is down then availableMembers will be 2
final int availableMembers = (peerIdToMemberNames.size() - downPeerMemberNames.size()) + 1;
- LOG.debug("{}: Using strategy {} to select owner", persistenceId(), strategy);
- if(Strings.isNullOrEmpty(currentOwner)){
+ LOG.debug("{}: Using strategy {} to select owner, currentOwner = {}", persistenceId(), strategy, currentOwner);
+
+ if(!message.getAllCandidates().contains(currentOwner)){
if(strategy.getSelectionDelayInMillis() == 0L) {
writeNewOwner(message.getEntityPath(), newOwner(currentOwner, message.getAllCandidates(),
entityOwnershipStatistics.byEntityType(entityType), strategy));