_req.execute();
try { _req.execute(); } catch(Exception ex) { throw new RuntimeException("failed executing request " + _req, ex); }
    public RspList castMessage(final Vector dests, Message msg, int mode, long timeout) {        GroupRequest _req=null;        Vector real_dests;        Channel tmp;        // we need to clone because we don't want to modify the original        // (we remove ourselves if LOCAL is false, see below) !        // real_dests=dests != null ? (Vector) dests.clone() : (members != null ? new Vector(members) : null);        if(dests != null) {            real_dests=(Vector)dests.clone();        }        else {            synchronized(members) {                real_dests=new Vector(members);            }        }        // if local delivery is off, then we should not wait for the message from the local member.        // therefore remove it from the membership        tmp=channel;        if(tmp == null) {            if(adapter != null && adapter.getTransport() instanceof Channel) {                tmp=(Channel) adapter.getTransport();            }        }        if(tmp != null && tmp.getOpt(Channel.LOCAL).equals(Boolean.FALSE)) {            if(local_addr == null) {                local_addr=tmp.getLocalAddress();            }            if(local_addr != null && real_dests != null) {                real_dests.removeElement(local_addr);            }        }        // don't even send the message if the destination list is empty        if(log.isTraceEnabled())            log.trace("real_dests=" + real_dests);        if(real_dests == null || real_dests.size() == 0) {            if(log.isTraceEnabled())                log.trace("destination list is empty, won't send message");            return new RspList(); // return empty response list        }        _req=new GroupRequest(msg, corr, real_dests, mode, timeout, 0);        _req.setCaller(this.local_addr);        _req.execute();        return _req.getResults();    }