T retVal = null;
Object handler = this.rpcHandlers.get(serviceName);
if (handler != null) {
MethodCall call = new MethodCall(methodName, args, types);
try {
Object result = call.invoke(handler);
if (returnType != null && void.class != returnType) {
retVal = returnType.cast(result);
if (remoteResponses != null && (filter == null || filter.isAcceptable(retVal, me))) {
remoteResponses.add(retVal);
}