if(log.isInfoEnabled()) log.info("election results: " + votes);
if(log.isDebugEnabled()) log.debug("election results: " + votes);
    Address determineCoord(Vector mbrs) {        PingRsp mbr;        Hashtable votes;        int count, most_votes;        Address winner=null, tmp;        if(mbrs == null || mbrs.size() < 1)            return null;        votes=new Hashtable();        // count *all* the votes (unlike the 2000 election)        for(int i=0; i < mbrs.size(); i++) {            mbr=(PingRsp)mbrs.elementAt(i);            if(mbr.coord_addr != null) {                if(!votes.containsKey(mbr.coord_addr))                    votes.put(mbr.coord_addr, new Integer(1));                else {                    count=((Integer)votes.get(mbr.coord_addr)).intValue();                    votes.put(mbr.coord_addr, new Integer(count + 1));                }            }        }         {            if(votes.size() > 1)                if(log.isWarnEnabled()) log.warn("there was more than 1 candidate for coordinator: " + votes);            else                if(log.isInfoEnabled()) log.info("election results: " + votes);        }        // determine who got the most votes        most_votes=0;        for(Enumeration e=votes.keys(); e.hasMoreElements();) {            tmp=(Address)e.nextElement();            count=((Integer)votes.get(tmp)).intValue();            if(count > most_votes) {                winner=tmp;                // fixed July 15 2003 (patch submitted by Darren Hobbs, patch-id=771418)                most_votes=count;            }        }        votes.clear();        return winner;    }