@Override public void allVotesCast(Topology voteTopology) { //if we have any nodes that we can request then send a request if (nodes.size() > 0) { Pair<String, Integer> decision = getDecision(); TopologyMemberImpl member = voteTopology.getMember(decision.getA()); try { boolean backupStarted = colocatedHAManager.requestBackup(member.getConnector(), decision.getB().intValue(), !colocatedPolicy.isSharedStore()); if (!backupStarted) { nodes.clear(); server.getScheduledPool().schedule(new Runnable() { @Override public void run() { server.getClusterManager().getQuorumManager().vote(new RequestBackupQuorumVote()); } }, colocatedPolicy.getBackupRequestRetryInterval(), TimeUnit.MILLISECONDS); } } catch (Exception e) { ActiveMQServerLogger.LOGGER.failedToSendRequestToNode(e); } } else { nodes.clear(); server.getScheduledPool().schedule(new Runnable() { @Override public void run() { server.getClusterManager().getQuorumManager().vote(RequestBackupQuorumVote.this); } }, colocatedPolicy.getBackupRequestRetryInterval(), TimeUnit.MILLISECONDS); } }