docs: final void initInvocationTarget() throws Exception {
          Member previousTargetMember = targetMember;
          T target = getInvocationTarget();
          if (target == null) {
              remote = false;
              throw newTargetNullException();
          }
  
          targetMember = toTargetMember(target);
          if (targetMember != null) {
              targetAddress = targetMember.getAddress();
          } else {
              targetAddress = toTargetAddress(target);
          }
          memberListVersion = context.clusterService.getMemberListVersion();
  
          if (targetMember == null) {
              if (previousTargetMember != null) {
                  // If a target member was found earlier but current target member is null
                  // then it means a member left.
                  throw new MemberLeftException(previousTargetMember);
              }
              if (!(isJoinOperation(op) || isWanReplicationOperation(op))) {
                  throw new TargetNotMemberException(target, op.getPartitionId(), op.getClass().getName(), op.getServiceName());
              }
          }
  
          if (op instanceof TargetAware) {
              ((TargetAware) op).setTarget(targetAddress);
          }
  
          remote = !context.thisAddress.equals(targetAddress);
      }