if(leaving) { gms.passUp(new Event(Event.DISCONNECT_OK)); gms.initState(); }
     public void handleLeave(Address mbr, boolean suspected) {         Vector v=new Vector(1);         // contains either leaving mbrs or suspected mbrs         if(log.isDebugEnabled()) log.debug("mbr=" + mbr);         if(!gms.members.contains(mbr)) {             if(trace) log.trace("mbr " + mbr + " is not a member !");             return;         }         if(gms.view_id == null) {             // we're probably not the coord anymore (we just left ourselves), let someone else do it             // (client will retry when it doesn't get a response             if(log.isDebugEnabled())                 log.debug("gms.view_id is null, I'm not the coordinator anymore (leaving=" + leaving +                           "); the new coordinator will handle the leave request");             return;         }         sendLeaveResponse(mbr); // send an ack to the leaving member         v.addElement(mbr);         if(suspected)             gms.castViewChange(null, null, v);         else             gms.castViewChange(null, v, null);     }