void (@NotNull Element element) { List<Element> featuresList = element.getChildren(FEATURE_TAG); if (!featuresList.isEmpty()) { ProductivityFeaturesRegistry featureRegistry = ProductivityFeaturesRegistry.getInstance(); if (featureRegistry != null) { for (Element itemElement : featuresList) { FeatureDescriptor descriptor = featureRegistry.getFeatureDescriptor(itemElement.getAttributeValue(ATT_ID)); if (descriptor != null) { descriptor.readStatistics(itemElement); } } } } adjustFeatureUsageInfo(); try { FIRST_RUN_TIME = Long.parseLong(element.getAttributeValue(ATT_FIRST_RUN)); } catch (NumberFormatException e) { FIRST_RUN_TIME = 0; } Element stats = element.getChild(COMPLETION_STATS_TAG); if (stats != null) { myCompletionStats = XmlSerializer.deserialize(stats, CompletionStatistics.class); } Element fStats = element.getChild(FIXES_STATS_TAG); if (fStats != null) { myFixesStats = XmlSerializer.deserialize(fStats, CumulativeStatistics.class); } HAVE_BEEN_SHOWN = Boolean.valueOf(element.getAttributeValue(ATT_HAVE_BEEN_SHOWN)).booleanValue(); SHOW_IN_OTHER_PROGRESS = Boolean.valueOf(element.getAttributeValue(ATT_SHOW_IN_OTHER, Boolean.toString(true))).booleanValue(); SHOW_IN_COMPILATION_PROGRESS = Boolean.valueOf(element.getAttributeValue(ATT_SHOW_IN_COMPILATION, Boolean.toString(true))).booleanValue(); }