private void tryComplete(ChannelHandlerContext ctx) throws IOException {
    if (!saslRpcClient.isComplete()) {
      return;
    }

    // HBASE-23881 Clearly log when the client thinks that the SASL negotiation is complete.
    if (LOG.isTraceEnabled()) {
      LOG.trace("SASL negotiation for {} is complete", provider.getSaslAuthMethod().getName());
    }
    saslRpcClient.setupSaslHandler(ctx.pipeline(), HANDLER_NAME);
    removeHandlers(ctx);

    setCryptoAESOption();

    saslPromise.setSuccess(true);
  }
@param saslPromise {@code true} if success, {@code false} if server tells us to fallback to
                   simple.
hbase-client/src/main/java/org/apache/hadoop/hbase/security/NettyHBaseSaslRpcClientHandler.java