protected void setToken(Token<TokenType> newToken) throws IOException {
    if (tokensAreEqual(newToken)) {
      return;
    }
    LOG.info("Setting new token as it's not equal to the old one, new token is: {}", newToken);
    // clear cache to make proxies use the new token
    hostProxies.invalidateAll();

    this.token = newToken;
    if (token != null) {
      String tokenUser = getTokenUser(token);
      if (tokenUser == null) {
        try {
          tokenUser = UserGroupInformation.getCurrentUser().getShortUserName();
        } catch (IOException e) {
          throw new RuntimeException(e);
        }
        LOG.warn("Cannot determine token user from the token; using {}", tokenUser);
      }
      this.tokenUser = tokenUser;
    } else {
      this.tokenUser = null;
    }
  }
Asynchronous request to a node. The request must override {@link #callInternal()}
@param <REQUEST>
@param <RESPONSE>
llap-common/src/java/org/apache/hadoop/hive/llap/AsyncPbRpcProxy.java