private void aggregate(String hier) {
		List<RiskSensitivity> riskByHier;
		try{
			riskByHier = this.riskSensitivityDao.getRiskByHier(hier);
		}catch (ReadTimeoutException e){
			LOG.info("Caugh Timeout - continuing");
			return;
		}

		// Run some groupings.
		Map<String, Double> pathSensNameMap = new HashMap<String, Double>();

		for (RiskSensitivity riskSens : riskByHier) {
			// Aggregate by riskSens
			String riskSensName = riskSens.getName();
			double value = riskSens.getValue().doubleValue();

			if (pathSensNameMap.containsKey(riskSensName)) {
				double existingValue = pathSensNameMap.get(riskSensName);
				pathSensNameMap.put(riskSensName, value + existingValue);
			} else {
				pathSensNameMap.put(riskSensName, value);
			}
		}

		// Get hierarchy
		String newhierarchyParent = "";
		String newhierarchyChild = hier;

		if (hier.contains("/")) {
			newhierarchyParent = hier.substring(0, hier.lastIndexOf('/'));
			newhierarchyChild = hier.substring(hier.lastIndexOf('/') + 1);
			
			for (String sensName : pathSensNameMap.keySet()) {
				this.riskSensitivityDao.insert(sensName, newhierarchyParent, newhierarchyChild,
						pathSensNameMap.get(sensName));
			}
					
			timedAggMap.put(newhierarchyParent, System.currentTimeMillis() + 1000);
		}
	}