@Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    for (Pair<RegionInfo, RegionInfo> p : this.holes) {
      if (sb.length() > 0) {
        sb.append(", ");
      }
      sb.append("hole=").append(p.getFirst().getRegionNameAsString()).append("/")
        .append(p.getSecond().getRegionNameAsString());
    }
    for (Pair<RegionInfo, RegionInfo> p : this.overlaps) {
      if (sb.length() > 0) {
        sb.append(", ");
      }
      sb.append("overlap=").append(p.getFirst().getRegionNameAsString()).append("/")
        .append(p.getSecond().getRegionNameAsString());
    }
    for (byte[] r : this.emptyRegionInfo) {
      if (sb.length() > 0) {
        sb.append(", ");
      }
      sb.append("empty=").append(Bytes.toStringBinary(r));
    }
    for (Pair<RegionInfo, ServerName> p : this.unknownServers) {
      if (sb.length() > 0) {
        sb.append(", ");
      }
      sb.append("unknown_server=").append(p.getSecond()).append("/")
        .append(p.getFirst().getRegionNameAsString());
    }
    return sb.toString();
  }
Returns True if an 'empty' lastReport -- no problems found.
hbase-server/src/main/java/org/apache/hadoop/hbase/master/janitor/CatalogJanitorReport.java