public static <T1, T2, R, E extends Throwable> R
    callWithVersion(ServiceCallFunction<T1, T2, R, E> f, T1 t1, T2 t2) throws E {
    // Note: just as RpcServer.CurCall, this will only apply on the current thread.
    NonCallVersion.set(ProtobufUtil.getVersionInfo());
    try {
      return f.apply(t1, t2);
    } finally {
      NonCallVersion.remove();
    }
  }
We intend to use the local version for service call shortcut(s), so we use an interface
compatible with a typical service call, with 2 args, return type, and an exception type.
hbase-server/src/main/java/org/apache/hadoop/hbase/client/VersionInfoUtil.java