if(log.isInfoEnabled()) log.info("received CONFIG event: " + evt.getArg());
if(log.isDebugEnabled()) log.debug("received CONFIG event: " + evt.getArg());
    public void down(Event evt) {        Message msg;        Digest digest;        Vector mbrs;        switch(evt.getType()) {            case Event.MSG:                msg=(Message)evt.getArg();                if(msg.getDest() != null && !msg.getDest().isMulticastAddress())                    break; // unicast address: not null and not mcast, pass down unchanged                send(msg);                return;    // don't pass down the stack            case Event.STABLE:  // generated by STABLE layer. Delete stable messages passed in arg                stable((Digest)evt.getArg());                return;  // do not pass down further (Bela Aug 7 2001)            case Event.GET_DIGEST:                digest=getDigest();                passUp(new Event(Event.GET_DIGEST_OK, digest));                return;            case Event.GET_DIGEST_STABLE:                digest=getDigestHighestDeliveredMsgs();                passUp(new Event(Event.GET_DIGEST_STABLE_OK, digest));                return;            case Event.GET_DIGEST_STATE:                digest=getDigest();                passUp(new Event(Event.GET_DIGEST_STATE_OK, digest));                return;            case Event.SET_DIGEST:                setDigest((Digest)evt.getArg());                return;            case Event.MERGE_DIGEST:                mergeDigest((Digest)evt.getArg());                return;            case Event.CONFIG:                passDown(evt);                if(log.isInfoEnabled()) log.info("received CONFIG event: " + evt.getArg());                handleConfigEvent((HashMap)evt.getArg());                return;            case Event.TMP_VIEW:                mbrs=((View)evt.getArg()).getMembers();                members.removeAllElements();                members.addAll(mbrs);                adjustReceivers();                break;            case Event.VIEW_CHANGE:                mbrs=((View)evt.getArg()).getMembers();                members.removeAllElements();                members.addAll(mbrs);                adjustReceivers();                is_server=true;  // check vids from now on                break;            case Event.BECOME_SERVER:                is_server=true;                break;            case Event.DISCONNECT:                leaving=true;                removeAll();                seqno=0;                break;        }        passDown(evt);    }