docs: public List<RollupInterval> getRollupInterval(final long interval, 
                                                  final String str_interval) {
      
      if (interval <= 0) {
        throw new IllegalArgumentException("Interval cannot be null or empty");
      }
      
      final Map<Long, RollupInterval> rollups = 
          new TreeMap<Long, RollupInterval>(Collections.reverseOrder());
      boolean right_match = false;
      
      for (RollupInterval rollup: forward_intervals.values()) {
        if (rollup.getIntervalSeconds() == interval) {
          rollups.put((long) rollup.getIntervalSeconds(), rollup);
          right_match = true;
        }
        else if (interval % rollup.getIntervalSeconds() == 0) {
          rollups.put((long) rollup.getIntervalSeconds(), rollup);
        }
      }
  
      if (rollups.isEmpty()) {
        throw new NoSuchRollupForIntervalException(Long.toString(interval));
      }
      
      List<RollupInterval> best_matches = 
              new ArrayList<RollupInterval>(rollups.values());
      
      if (!right_match) {
        LOG.warn("No such rollup interval found, " + str_interval + ". So falling "
                + "back to the next best match " + best_matches.get(0).
                        getInterval());
      }
      
      return best_matches;
    }