protected Procedure<TEnvironment>[] doExecute(TEnvironment env)
    throws ProcedureYieldException, ProcedureSuspendedException, InterruptedException {
    try {
      updateTimestamp();
      if (bypass) {
        LOG.info("{} bypassed, returning null to finish it", this);
        return null;
      }
      return execute(env);
    } finally {
      updateTimestamp();
    }
  }
Internal method called by the ProcedureExecutor that starts the user-level code execute().
@throws ProcedureSuspendedException This is used when procedure wants to halt processing and
                                    skip out without changing states or releasing any locks
                                    held.
hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java