public boolean addIfAbsent(T obj) { return obj != null && !contains(obj) && add(obj); }
public synchronized boolean setMergeId(MergeId expected, MergeId new_value) { boolean match=Util.match(this.merge_id, expected); if(match) { if(new_value != null && merge_id_history.contains(new_value)) return false; else merge_id_history.add(new_value); this.merge_id=new_value; if(this.merge_id != null) { // Clears the view handler queue and discards all JOIN/LEAVE/MERGE requests until after the MERGE gms.getViewHandler().suspend(); gms.getDownProtocol().down(new Event(Event.SUSPEND_STABLE, 20000)); startMergeKiller(); } } return match; }
mbrs.stream().filter(addr -> !prev_members.contains(addr)).forEach(addr -> prev_members.add(addr));
public boolean addIfAbsent(T obj) { return obj != null && !contains(obj) && add(obj); }
/** Removes and resets from connection table (which is already locked). Returns true if member was found, otherwise false */ private boolean removeConnection(Address mbr) { Entry entry; synchronized(connections) { entry=connections.remove(mbr); if(!previous_members.contains(mbr)) previous_members.add(mbr); } if(entry != null) { entry.reset(); return true; } else return false; }
public void sendToSingleMember(Address dest, byte[] data, int offset, int length) throws Exception { if(log.isTraceEnabled()) log.trace("dest=" + dest + " (" + length + " bytes)"); if(skip_suspected_members) { if(suspected_mbrs.contains(dest)) { if(log.isTraceEnabled()) log.trace("will not send unicast message to " + dest + " as it is currently suspected"); return; } } try { send(dest, data, offset, length); } catch(Exception e) { if(log.isTraceEnabled()) log.trace("failure sending message to " + dest, e); if(suspect_on_send_failure && members.contains(dest)) { if(!suspected_mbrs.contains(dest)) { suspected_mbrs.add(dest); up_prot.up(new Event(Event.SUSPECT, dest)); } } } }
if(last_ports_used == null) last_ports_used=new BoundedList(num_last_ports); if(last_ports_used.contains(new Integer(localPort))) { if(log.isDebugEnabled()) log.debug("local port " + localPort + " already seen in this session; will try to get other port");
log.trace(new StringBuffer().append(local_addr).append(" <-- DATA(").append(sender).append(": #").append(seqno)); if(previous_members.contains(sender)) {
if(!members.contains(dst) && !enabled_members.contains(dst)) { throw new IllegalArgumentException(dst + " is not a member of the group " + members + " (enabled_members=" + enabled_members + ")"); if(!enabled_members.contains(member)) enabled_members.add(member); Object obj=previous_members.removeElement(member);
public synchronized boolean setMergeId(MergeId expected, MergeId new_value) { boolean match=Util.match(this.merge_id, expected); if(match) { if(new_value != null && merge_id_history.contains(new_value)) return false; else merge_id_history.add(new_value); this.merge_id=new_value; if(this.merge_id != null) { // Clears the view handler queue and discards all JOIN/LEAVE/MERGE requests until after the MERGE gms.getViewHandler().suspend(); gms.getDownProtocol().down(new Event(Event.SUSPEND_STABLE, 20000)); startMergeKiller(); } } return match; }
mbrs.stream().filter(addr -> !prev_members.contains(addr)).forEach(addr -> prev_members.add(addr));