buildAveragesLock.writeLock().lock();
RunningAverage itemAverage = itemAverages.get(itemID);
if (itemAverage == null) {
throw new IllegalStateException("No preferences exist for item ID: " + itemID);
}
itemAverage.removeDatum(value);
RunningAverage userAverage = userAverages.get(userID);
if (userAverage == null) {
throw new IllegalStateException("No preferences exist for user ID: " + userID);
}
userAverage.removeDatum(value);