private static Set<String> upgradeSettingsGeneric(Map<String, TreeMap<Integer, SettingsDescription>> settings, Map<String, Object> validatedSettingsMutable, Set<String> deletedSettingsMutable, int toVersion) { for (Entry<String, TreeMap<Integer, SettingsDescription>> versions : settings.entrySet()) { String settingName = versions.getKey(); TreeMap<Integer, SettingsDescription> versionedSettings = versions.getValue(); boolean isNewlyAddedSetting = versionedSettings.firstKey() == toVersion; if (isNewlyAddedSetting) { boolean wasHandledByCustomUpgrader = validatedSettingsMutable.containsKey(settingName); if (wasHandledByCustomUpgrader) { continue; } SettingsDescription setting = versionedSettings.get(toVersion); if (setting == null) { throw new AssertionError("First version of a setting must be non-null!"); } upgradeSettingInsertDefault(validatedSettingsMutable, settingName, setting); } Integer highestVersion = versionedSettings.lastKey(); boolean isRemovedSetting = (highestVersion == toVersion && versionedSettings.get(highestVersion) == null); if (isRemovedSetting) { if (deletedSettingsMutable == null) { deletedSettingsMutable = new HashSet<>(); } upgradeSettingRemove(validatedSettingsMutable, deletedSettingsMutable, settingName); } } return deletedSettingsMutable; }