	protected void initUpgradesHistories() {
		File upgradesDir = new File(WebappHelper.getUserDataRoot(), SYSTEM_DIR);
		File upgradesHistoriesFile = new File(upgradesDir, INSTALLED_UPGRADES_XML);
		if (upgradesHistoriesFile.exists()) {
			upgradesHistories = (Map<String, UpgradeHistoryData>)upgradesXStream.fromXML(upgradesHistoriesFile);
		} else {
			if (upgradesHistories == null) {
				upgradesHistories = new HashMap<>();
			}
			needsUpgrade = false; //looks like a new install, no upgrade necessary
			log.info("This looks like a new install or dropped data, will not do any upgrades.");
			createUpgradeData();
		}
	}
The software does not properly neutralize special elements that are used in XML, allowing attackers to modify the syntax, content, or commands of the XML before it is processed by an end system.