private void init(final Connection conn, final Scan scan) throws IOException {
    this.connection = Objects.requireNonNull(conn);
    this.table = this.connection.getTable(QuotaTableUtil.QUOTA_TABLE_NAME);
    try {
      scanner = table.getScanner(scan);
    } catch (IOException e) {
      try {
        close();
      } catch (IOException ioe) {
        LOG.warn("Failed getting scanner and then failed close on cleanup", e);
      }
      throw e;
    }
  }
Should QutoaRetriever manage the state of the connection, or leave it be.
hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/QuotaRetriever.java