@Override
  public boolean visit(Result r) {
    if (r == null || r.isEmpty()) {
      return true;
    }
    this.report.count++;
    RegionInfo regionInfo = null;
    try {
      regionInfo = metaTableConsistencyCheck(r);
    } catch (Throwable t) {
      LOG.warn("Failed consistency check on {}", Bytes.toStringBinary(r.getRow()), t);
    }
    if (regionInfo != null) {
      LOG.trace(regionInfo.toString());
      if (regionInfo.isSplitParent()) { // splitParent means split and offline.
        this.report.splitParents.put(regionInfo, r);
      }
      if (CatalogFamilyFormat.hasMergeRegions(r.rawCells())) {
        this.report.mergedRegions.put(regionInfo, r);
      }
    }
    // Returning true means "keep scanning"
    return true;
  }
Do not call until after {@link #close()}. Will throw a {@link RuntimeException} if you do.
hbase-server/src/main/java/org/apache/hadoop/hbase/master/janitor/ReportMakingVisitor.java