public RspList callRemoteMethods(Vector dests, MethodCall method_call, int mode, long timeout) { if(dests != null && dests.size() == 0) {  if(log.isTraceEnabled()) log.trace(new StringBuffer("destination list of ").append(method_call.getName()). append("() is empty: no need to send message")); return new RspList(); }  if(log.isTraceEnabled()) log.trace(new StringBuffer("dests=").append(dests).append(", method_call=").append(method_call). append(", mode=").append(mode).append(", timeout=").append(timeout));  byte[] buf; try { buf=marshaller != null? marshaller.objectToByteBuffer(method_call) : Util.objectToByteBuffer(method_call); } catch(Exception e) {     throw new RuntimeException("failure to marshal argument(s)", e); }  Message msg=new Message(null, null, buf); RspList  retval=super.castMessage(dests, msg, mode, timeout); if(log.isTraceEnabled()) log.trace("responses: " + retval); return retval;
public RspList callRemoteMethods(Vector dests, String method_name, Object[] args, Class[] types, int mode, long timeout) { MethodCall method_call=new MethodCall(method_name, args, types); return callRemoteMethods(dests, method_call, mode, timeout);
    public RspList callRemoteMethods(Vector dests, MethodCall method_call, int mode, long timeout) {        if(dests != null && dests.size() == 0) {            // don't send if dest list is empty            if(log.isTraceEnabled())                log.trace(new StringBuffer("destination list of ").append(method_call.getName()).                          append("() is empty: no need to send message"));            return new RspList();        }        if(log.isTraceEnabled())            log.trace(new StringBuffer("dests=").append(dests).append(", method_call=").append(method_call).                      append(", mode=").append(mode).append(", timeout=").append(timeout));        byte[] buf;        try {            buf=marshaller != null? marshaller.objectToByteBuffer(method_call) : Util.objectToByteBuffer(method_call);        }        catch(Exception e) {            // if(log.isErrorEnabled()) log.error("exception", e);            // we will change this in 2.4 to add the exception to the signature            // (see http://jira.jboss.com/jira/browse/JGRP-193). The reason for a RTE is that we cannot change the            // signature in 2.3, otherwise 2.3 would be *not* API compatible to prev releases            throw new RuntimeException("failure to marshal argument(s)", e);        }        Message msg=new Message(null, null, buf);        RspList  retval=super.castMessage(dests, msg, mode, timeout);        if(log.isTraceEnabled()) log.trace("responses: " + retval);        return retval;    }