if(left_members.size() > 0) adjustServiceViews(left_members);
    public void up(Event evt) {        // remove header and dispatch to correct MuxChannel        MuxHeader hdr;        switch(evt.getType()) {            case Event.MSG:                Message msg=(Message)evt.getArg();                hdr=(MuxHeader)msg.getHeader(NAME);                if(hdr == null) {                    log.error("MuxHeader not present - discarding message " + msg);                    return;                }                if(hdr.info != null) { // it is a service state request - not a default multiplex request                    try {                        handleServiceStateRequest(hdr.info, msg.getSrc());                    }                    catch(Exception e) {                        if(log.isErrorEnabled())                            log.error("failure in handling service state request", e);                    }                    break;                }                MuxChannel mux_ch=(MuxChannel)services.get(hdr.id);                if(mux_ch == null) {                    log.warn("service " + hdr.id + " not currently running, discarding messgage " + msg);                    return;                }                if(log.isTraceEnabled())                    log.trace("dispatching message to " + hdr.id);                mux_ch.up(evt);                break;            case Event.VIEW_CHANGE:                view=(View)evt.getArg();                if(view instanceof MergeView) {                    // handle merges here                }                // passToAllMuxChannels(evt);                break;            case Event.SUSPECT:                passToAllMuxChannels(evt);                break;            case Event.GET_APPLSTATE:                handleStateRequest(evt);                break;            case Event.GET_STATE_OK:                handleStateResponse(evt);                break;            case Event.SET_LOCAL_ADDRESS:                local_addr=(Address)evt.getArg();                passToAllMuxChannels(evt);                break;            default:                passToAllMuxChannels(evt);                break;        }    }