private synchronized void readExternal()

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


  private synchronized void readExternal(@NotNull final Element element) {
    myFeatureUsages.clear();
    for (final Object feature : element.getChildren(FEATURE)) {
      if (!(feature instanceof Element)) continue;
      final Element featureElement = (Element) feature;
      final String featureName = featureElement.getAttributeValue(NAME);
      if (featureName == null) continue;
      final List<Long> usages = new ArrayList<Long>();
      myFeatureUsages.put(featureName, usages);
      for (final Object usage : featureElement.getChildren(USAGE)) {
        if (!(usage instanceof Element)) continue;
        final Element usageElement = (Element)usage;
        final String timestampStr = usageElement.getAttributeValue(TIMESTAMP);
        if (timestampStr == null) continue;
        try {
          usages.add(Long.parseLong(timestampStr));
        } catch (final NumberFormatException ignore) {}
      }
      Collections.sort(usages);
    }
    removeObsoleteUsages();
  }