code: public void bindToAnyDelegationToken() throws IOException {
      validateAccessTokenProvider();
      Token<DelegationTokenIdentifier> token = selectTokenFromFsOwner();
      if (token != null) {
        bindToDelegationToken(token);
      } else {
        deployUnbonded();
      }
      if (accessTokenProvider == null) {
        throw new DelegationTokenIOException(
            "No AccessTokenProvider created by Delegation Token Binding " + tokenBinding.getKind());
      }
    }
docs: Attempt to bind to any existing DT, including unmarshalling its contents and creating the GCP
  credential provider used to authenticate the client.
  
  <p>If successful:
  
  <ol>
  <li>{@link #boundDT} is set to the retrieved token.
  <li>{@link #accessTokenProvider} is set to the credential provider(s) returned by the token
  binding.
  </ol>
  
  If unsuccessful, {@link #deployUnbonded()} is called for the unbonded codepath instead, which
  will set {@link #accessTokenProvider} to its value.
  
  <p>This means after this call (and only after) the token operations can be invoked.
  
  @throws IOException selection/extraction/validation failure.