private synchronized void checkAndNotifyAboutCurrentAndPreviousMembers(String memberName, boolean isJoinEvent, boolean triggeredByGMS) { SortedSet<String> currentAliveAndReadyMembers = gms.getGroupHandle().getCurrentAliveAndReadyCoreView().getMembers(); AliveAndReadyView aView = gms.getGroupHandle().getPreviousAliveAndReadyCoreView(); SortedSet<String> previousAliveAndReadyMembers = new TreeSet<String>(); long arViewId = aView.getViewId(); long knownId = previousViewId.get(); Signal sig = aView.getSignal(); if (previousViewId.compareAndSet(knownId, arViewId)) { this.arView = aView; sig = this.arView.getSignal(); previousAliveAndReadyMembers = this.arView.getMembers(); } else { previousAliveAndReadyMembers = this.arView.getMembers(); previousAliveAndReadyMembers = this.arView.getMembers();
public void processNotification(Signal signal) { if (signal instanceof PlannedShutdownSignal || signal instanceof FailureNotificationSignal) { synchronized (aliveAndReadyView) { // only consider CORE members. AliveAndReadyView current = getCurrentView(); if (current != null && current.getMembers().contains(signal.getMemberToken())) { SortedSet<String> currentMembers = new TreeSet<String>(current.getMembers()); boolean result = currentMembers.remove(signal.getMemberToken()); assert (result); add(signal, currentMembers); if (signal instanceof PlannedShutdownSignalImpl) { PlannedShutdownSignalImpl pssig = (PlannedShutdownSignalImpl)signal; pssig.setCurrentView(getCurrentView()); pssig.setPreviousView(getPreviousView()); } else if (signal instanceof FailureNotificationSignalImpl) { FailureNotificationSignalImpl fsig = (FailureNotificationSignalImpl)signal; fsig.setCurrentView(getCurrentView()); fsig.setPreviousView(getPreviousView()); } } } } } }
public void processNotification(Signal signal) { if (signal instanceof PlannedShutdownSignal || signal instanceof FailureNotificationSignal) { synchronized (aliveAndReadyView) { // only consider CORE members. AliveAndReadyView current = getCurrentView(); if (current != null && current.getMembers().contains(signal.getMemberToken())) { SortedSet<String> currentMembers = new TreeSet<String>(current.getMembers()); boolean result = currentMembers.remove(signal.getMemberToken()); assert (result); add(signal, currentMembers); if (signal instanceof PlannedShutdownSignalImpl) { PlannedShutdownSignalImpl pssig = (PlannedShutdownSignalImpl)signal; pssig.setCurrentView(getCurrentView()); pssig.setPreviousView(getPreviousView()); } else if (signal instanceof FailureNotificationSignalImpl) { FailureNotificationSignalImpl fsig = (FailureNotificationSignalImpl)signal; fsig.setCurrentView(getCurrentView()); fsig.setPreviousView(getPreviousView()); } } } } } }
synchronized (aliveAndReadyView) { current = getCurrentView(); SortedSet<String> currentMembers = new TreeSet<String>(current.getMembers()); for (String member : jrns.getCurrentCoreMembers()) { if (dasReadyMembers != null && dasReadyMembers.contains(member)) {
synchronized (aliveAndReadyView) { current = getCurrentView(); SortedSet<String> currentMembers = new TreeSet<String>(current.getMembers()); for (String member : jrns.getCurrentCoreMembers()) { if (dasReadyMembers != null && dasReadyMembers.contains(member)) {