if(log.isInfoEnabled()) log.info("exception=" + catch_all_the_rest);
log.error("exception=" + catch_all_the_rest);
    public void run() {        Address tmp_ping_dest;        IpAddress ping_addr;        int max_fetch_tries=10;  // number of times a socket address is to be requested before giving up        if(log.isTraceEnabled()) log.trace("pinger_thread started"); // +++ remove        while(pinger_thread != null) {            tmp_ping_dest=determinePingDest();                if(log.isInfoEnabled()) log.info("determinePingDest()=" + tmp_ping_dest +                                            ", pingable_mbrs=" + pingable_mbrs);            if(tmp_ping_dest == null) {                ping_dest=null;                pinger_thread=null;                break;            }            ping_dest=tmp_ping_dest;            ping_addr=fetchPingAddress(ping_dest);            if(ping_addr == null) {                if(log.isErrorEnabled()) log.error("socket address for " + ping_dest + " could not be fetched, retrying");                if(--max_fetch_tries <= 0)                    break;                Util.sleep(2000);                continue;            }            if(!setupPingSocket(ping_addr)) {                if(log.isInfoEnabled()) log.info("could not create socket to " + ping_dest + "; suspecting " + ping_dest);                broadcastSuspectMessage(ping_dest);                pingable_mbrs.removeElement(ping_dest);                continue;            }                if(log.isInfoEnabled()) log.info("ping_dest=" + ping_dest + ", ping_sock=" + ping_sock + ", cache=" + cache);            // at this point ping_input must be non-null, otherwise setupPingSocket() would have thrown an exception            try {                if(ping_input.read() == -1) // waits until the socket is closed                    handleSocketClose(null);            }            catch(IOException ex) {  // we got here when the peer closed the socket --> suspect peer and then continue                handleSocketClose(ex);            }            catch(Throwable catch_all_the_rest) {                 if(log.isInfoEnabled()) log.info("exception=" + catch_all_the_rest);            }        }         if(log.isInfoEnabled()) log.info("pinger thread terminated");        pinger_thread=null;    }