private static ValidTxnList getValidTxnList(Configuration conf) {
    ValidTxnList validTxnList = null;
    String s = conf.get(ValidTxnList.VALID_TXNS_KEY);
    if(!Strings.isNullOrEmpty(s)) {
      /*
       * getAcidState() is sometimes called on non-transactional tables, e.g.
       * OrcInputFileFormat.FileGenerator.callInternal().  e.g. orc_merge3.q In that case
       * writeIdList is bogus - doesn't even have a table name.
       * see https://issues.apache.org/jira/browse/HIVE-20856.
       *
       * For now, assert that ValidTxnList.VALID_TXNS_KEY is set only if this is really a read
       * of a transactional table.
       */
      validTxnList = new ValidReadTxnList();
      validTxnList.readFromString(s);
    }
    return validTxnList;
  }
GetAcidState implementation which uses the provided dirSnapshot.
Generates a new one if needed and the provided one is null.
@param fileSystem optional, it it is not provided, it will be derived from the candidateDirectory
@param candidateDirectory the partition directory to analyze
@param conf the configuration
@param writeIdList the list of write ids that we are reading
@param useFileIds It will be set to true, if the FileSystem supports listing with fileIds
@param ignoreEmptyFiles Ignore files with 0 length
@param dirSnapshots The listed directory snapshot, if null new will be generated
@return the state of the directory
@throws IOException on filesystem errors
ql/src/java/org/apache/hadoop/hive/ql/io/AcidUtils.java