private ResultCollector executeOnReplicate(
final DistributedRegionFunctionExecutor execution,
final Function function, final Object args, ResultCollector rc,
final Set filter, final DistributedMember target,
final TXStateInterface tx) {
final Set singleMember = Collections.singleton(target);
execution.validateExecution(function, singleMember);
execution.setExecutionNodes(singleMember);
HashMap<InternalDistributedMember, Object> memberArgs = new HashMap<InternalDistributedMember, Object>();
memberArgs.put((InternalDistributedMember)target, execution.getArgumentsForMember(target.getId()));
final ResultSender resultSender = new DistributedRegionFunctionResultSender(
null, tx, rc, function, execution.getServerResultSender());
DistributedRegionFunctionResultWaiter waiter =
new DistributedRegionFunctionResultWaiter(
this.getSystem(), this, rc, function, filter,
Collections.singleton(target), memberArgs, resultSender);
rc = waiter.getFunctionResultFrom(Collections.singleton(target),
function, execution);
return rc;
}