if(log.isInfoEnabled()) log.info("[" + local_addr + "]: received no heartbeat ack from " + ping_dest +
if(log.isDebugEnabled()) log.debug("[" + local_addr + "]: received no heartbeat ack from " + ping_dest +
        public void run() {            Message hb_req;            long not_heard_from=0; // time in msecs we haven't heard from ping_dest            if(ping_dest == null) {                if(log.isWarnEnabled())                    log.warn("ping_dest is null: members=" + members + ", pingable_mbrs=" +                            pingable_mbrs + ", local_addr=" + local_addr);                return;            }            // 1. send heartbeat request            hb_req=new Message(ping_dest, null, null);            hb_req.putHeader(getName(), new FdHeader(FdHeader.HEARTBEAT));  // send heartbeat request            if(log.isDebugEnabled())                log.debug("sending are-you-alive msg to " + ping_dest +                        " (own address=" + local_addr + ")");            passDown(new Event(Event.MSG, hb_req));            // 2. If the time of the last heartbeat is > timeout and max_tries heartbeat messages have not been            //    received, then broadcast a SUSPECT message. Will be handled by coordinator, which may install            //    a new view            not_heard_from=System.currentTimeMillis() - last_ack;            if(log.isTraceEnabled()) // +++ remove                log.trace("not heard from " + ping_dest + " for " + not_heard_from + " ms");            // quick & dirty fix: increase timeout by 500msecs to allow for latency (bela June 27 2003)            if(not_heard_from > timeout + 500) { // no heartbeat ack for more than timeout msecs                if(num_tries >= max_tries) {                    if(log.isInfoEnabled())                        log.info("[" + local_addr + "]: received no heartbeat ack from " + ping_dest +                                " for " + num_tries + 1 + " times, suspecting it");                    // broadcast a SUSPECT message to all members - loop until                    // unsuspect or view change is received                    bcast_task.addSuspectedMember(ping_dest);                }                else {                    if(log.isDebugEnabled())                        log.debug("heartbeat missing from " + ping_dest + " (number=" + num_tries + ")");                    num_tries++;                }            }        }