/** * Process a new view object, or place on the startup queue * @param suspectInfo the suspectee and suspector */ protected void handleOrDeferSuspect(SuspectMember suspectInfo) { latestViewLock.writeLock().lock(); try { synchronized(startupLock) { if (!processingEvents) { return; } } InternalDistributedMember suspect = suspectInfo.suspectedMember; InternalDistributedMember who = suspectInfo.whoSuspected; this.suspectedMembers.put(suspect, Long.valueOf(System.currentTimeMillis())); try { listener.memberSuspect(suspect, who, suspectInfo.reason); } catch (DistributedSystemDisconnectedException se) { // let's not get huffy about it } } finally { latestViewLock.writeLock().unlock(); } }
/** * Process a new view object, or place on the startup queue * @param suspectInfo the suspectee and suspector */ protected void handleOrDeferSuspect(SuspectMember suspectInfo) { synchronized (latestViewLock) { synchronized(startupLock) { if (!processingEvents) { return; } } InternalDistributedMember suspect = getMemberFromIpAddress((IpAddress)suspectInfo.suspectedMember, true); InternalDistributedMember who = getMemberFromIpAddress((IpAddress)suspectInfo.whoSuspected, true); this.suspectedMembers.put(suspect, Long.valueOf(System.currentTimeMillis())); try { listener.memberSuspect(suspect, who); } catch (DistributedSystemDisconnectedException se) { // let's not get huffy about it } } }