void addMembersRemovedInNotJoinableState(Collection<MemberImpl> members) { clusterServiceLock.lock(); try { MemberMap m = membersRemovedInNotJoinableStateRef.get(); m = MemberMap.cloneAdding(m, members.toArray(new MemberImpl[0])); m = MemberMap.cloneExcluding(m, clusterService.getLocalMember()); membersRemovedInNotJoinableStateRef.set(m); } finally { clusterServiceLock.unlock(); } }
private void handleMemberRemove(MemberMap newMembers, MemberImpl removedMember) { ClusterState clusterState = clusterService.getClusterState(); if (!clusterState.isJoinAllowed()) { if (logger.isFineEnabled()) { logger.fine(removedMember + " is removed, added to members left while cluster is " + clusterState + " state"); } final InternalHotRestartService hotRestartService = node.getNodeExtension().getInternalHotRestartService(); if (!hotRestartService.isMemberExcluded(removedMember.getAddress(), removedMember.getUuid())) { MemberMap membersRemovedInNotJoinableState = membersRemovedInNotJoinableStateRef.get(); membersRemovedInNotJoinableStateRef .set(MemberMap.cloneAdding(membersRemovedInNotJoinableState, removedMember)); } } onMemberRemove(removedMember); // async events sendMembershipEventNotifications(removedMember, unmodifiableSet(new LinkedHashSet<Member>(newMembers.getMembers())), false); }