@Override
  public MethodInvokerResult executeMethodOnObject(Object target, String methodName,
      Object[] args) {
    long asyncId = 0;
    if (target instanceof Identifiable) {
      asyncId = ((Identifiable) target).getId();
      if (asyncId > 0) {
        AsyncThreadId.put(asyncId, Thread.currentThread().getId());
      }
    }
    try {
      String name = target.getClass().getName() + '.' + methodName
          + (args != null ? " with " + args.length + " args" : "") + " on object: " + target;
      long start = start(name);
      MethodInvokerResult result = MethodInvoker.executeObject(target, methodName, args);
      logDelta(name, start, result);
      return result;
    } finally {
      if (asyncId != 0) {
        AsyncThreadId.remove(asyncId);
      }
    }
  }
Executes a given instance method on a given object with the given arguments.
geode-dunit/src/main/java/org/apache/geode/test/dunit/internal/RemoteDUnitVM.java