@Override
public ListenableFuture<ObjectVersionGraph<M>> reload(Id docId, ObjectVersionGraph<M> oldValue) throws Exception {
if (!oldValue.isEmpty()) {
ObjectVersionGraph<M> newValue = oldValue;
Revision since = oldValue.getTip().getRevision();
try {
List<ObjectVersion<M>> updates = versionStore.fetchUpdates(docId, since);
log.debug("refresh({}): {})", docId, updates.size());
if (!updates.isEmpty()) {
newValue = oldValue.commit(updates);
}
return immediateFuture(compactIfRequired(newValue));
} catch (VersionNotFoundException e) {
}
}
return immediateFuture(load(docId));
}