if(log.isInfoEnabled()) log.info("first member; cache is empty");
if(log.isDebugEnabled()) log.debug("first member; cache is empty");
    void getCacheFromCoordinator() {        Address coord;        int attempts=num_tries;        Message msg;        FdHeader hdr;        Hashtable result;        get_cache_promise.reset();        while(attempts > 0) {            if((coord=determineCoordinator()) != null) {                if(coord.equals(local_addr)) { // we are the first member --> empty cache                        if(log.isInfoEnabled()) log.info("first member; cache is empty");                    return;                }                hdr=new FdHeader(FdHeader.GET_CACHE);                hdr.mbr=local_addr;                msg=new Message(coord, null, null);                msg.putHeader(getName(), hdr);                passDown(new Event(Event.MSG, msg));                result=(Hashtable) get_cache_promise.getResult(get_cache_timeout);                if(result != null) {                    cache.putAll(result); // replace all entries (there should be none !) in cache with the new values                        if(log.isInfoEnabled()) log.info("got cache from " +                                                                        coord + ": cache is " + cache);                    return;                }                else {                        if(log.isErrorEnabled()) log.error("received null cache; retrying");                }            }            Util.sleep(get_cache_retry_timeout);            --attempts;        }    }