synchronized (cacheLock) {
sourceEntry = cache.get(source);
if (sourceEntry == null) {
throw new ObsoleteSourceAnalysisException(source);
}
SourceEntryImpl sourceCopy = sourceEntry.getWritableCopy();
if (thrownException == null) {
sourceCopy.setModificationTime(task.getModificationTime());
sourceCopy.setValue(SourceEntry.CONTENT, task.getContent());
} else {
sourceCopy.recordContentError(thrownException);
workManager.remove(source);
}
cache.put(source, sourceCopy);
sourceEntry = sourceCopy;
}