sendToMember(ae.output, msg);
sendToMember(dest, ae.output, msg);
    private void route(Address dest, String dest_group, byte[] msg, Address sender) {        if(log.isTraceEnabled()) {            int len=msg != null? msg.length : 0;            log.trace("routing request from " + sender + " for "+dest_group+" to " +                      (dest==null?"ALL":dest.toString())+", " + len + " bytes");        }        if(dest == null) {            // send to all members in group dest.getChannelName()            if(dest_group == null) {                if(log.isErrorEnabled()) log.error("both dest address and group are null");                return;            }            else {                sendToAllMembersInGroup(dest_group, msg, sender);            }        }        else {                              // send to destination address            AddressEntry ae = findAddressEntry(dest);            if (ae == null) {                if(log.isErrorEnabled()) log.error("cannot find " + dest + " in the routing table");                return;            }            if (ae.output==null) {                if(log.isErrorEnabled()) log.error(dest + " is associated with a null output stream");                return;            }            try {                sendToMember(ae.output, msg);            }            catch(Exception e) {                if(log.isErrorEnabled()) log.error("failed sending message to "+dest+": "+e.getMessage());                removeEntry(ae.sock); // will close socket            }        }    }