processQueue();
}
protected synchronized void handleView(List<Address> members) {
if(current_owner != null && !members.contains(current_owner.getAddress())) {
Owner tmp=current_owner;
setOwner(null);
if(log.isDebugEnabled())
log.debug("unlocked \"" + lock_name + "\" because owner " + tmp + " left");
}
for(Iterator<Request> it=queue.iterator(); it.hasNext();) {
Request req=it.next();
if(!members.contains(req.owner.getAddress()))
it.remove();
}
for(Iterator<Owner> it=condition.queue.iterator(); it.hasNext();) {
Owner own=it.next();
if(!members.contains(own.getAddress())) {
it.remove();
}
}
processQueue();