@Override
    public Boolean call() throws Exception {

      String[] lineComponents = line.split("#");
      Path srcPath = new Path(lineComponents[0]);
      Path trgPath = new Path(lineComponents[1]);
      try {
        FileSystem srcFileSystem = srcPath.getFileSystem(conf);
        FileSystem tgtFileSystem = trgPath.getFileSystem(conf);
        // Check if there are any open file is the source cluster.
        if (checkOpenFiles) {
          LOG.debug("Validating {} and {} for open files at source", srcPath, trgPath);
          if (!validateOpenFilesAtSource(srcPath, srcFileSystem)) {
            return false;
          }
        }
        // Verify dir count, file count & length.
        if (checkAtDirLevel) {
          LOG.debug("Validating {} and {} at directory level", srcPath, trgPath);
          if (!validateAtDirectoryLevel(srcPath, trgPath, srcFileSystem, tgtFileSystem)) {
            return false;
          }
        }
        if (checkAtFileLevel) {
          LOG.debug("Validating {} and {} at file level", srcPath, trgPath);
          if (!validateAtFileLevel(srcPath, trgPath, srcFileSystem, tgtFileSystem, filtersPattern, isValidateChecksum,
              threadPoolChecksum)) {
            return false;
          }
        }
        LOG.info(srcPath + " and " + trgPath + " are in Sync");
      } catch (Exception e) {
        LOG.error("Failed to verify source: {} with target: {}", e);
        System.err
            .println("Failed to verify source: " + srcPath + " with target: " + trgPath + " error:" + e.getMessage());
        return false;
      }
      return true;
    }
Validates the content of the directory.
ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplicationMigrationTool.java