private synchronized void removeObsoleteUsages()

in usage-statistics-util/src/jetbrains/buildServer/usageStatistics/impl/providers/BaseFeatureUsageStatisticsProvider.java [67:79]


  private synchronized void removeObsoleteUsages() {
    final Condition<Long> nonObsolete = createDateCondition(getThresholdDate());
    for (final String featureName : new ArrayList<String>(myFeatureUsages.keySet())) {
      final List<Long> usages = myFeatureUsages.get(featureName);
      final List<Long> nonObsoleteUsages = usages.subList(CollectionsUtil.binarySearch(usages, nonObsolete), usages.size());
      if (nonObsoleteUsages.isEmpty()) {
        myFeatureUsages.remove(featureName);
      }
      else {
        myFeatureUsages.put(featureName, nonObsoleteUsages);
      }
    }
  }