void (@NotNull final Element element) { myLastModifications.clear(); for (Element update : element.getChildren(MODIFY)) { final String recorder = update.getAttributeValue(RECORDER_ID); if (StringUtil.isNotEmpty(recorder)) { final long lastUpdate = parseLastUpdate(update); myLastModifications.put(recorder, lastUpdate); } } myRecorderToPathSettings.clear(); for (Element path : element.getChildren(PATH)) { final String recorder = path.getAttributeValue(RECORDER_ID); if (StringUtil.isNotEmpty(recorder)) { String customPath = path.getAttributeValue(CUSTOM_PATH); if (customPath == null) continue; boolean useCustomPath = parseUseCustomPath(path); myRecorderToPathSettings.put(recorder, new EventsSchemePathSettings(customPath, useCustomPath)); } } synchronized (myOptionsLock) { myOptions.clear(); for (Element options : element.getChildren(OPTIONS)) { String recorderId = options.getAttributeValue(RECORDER_ID); if (recorderId != null) { myOptions.put(recorderId, new EventLogExternalOptions().deserialize(options)); } } } }