@Override
public MutateResult mutateObject(ServerMutateRequest req)
// TODO(ohler): Actually throw SlobNotFoundException.
throws SlobNotFoundException, IOException, AccessDeniedException {
SlobId objectId = new SlobId(req.getSession().getObjectId());
accessChecker.checkCanModify(objectId);
Preconditions.checkArgument(req.getVersion() != 0,
// NOTE(ohler): In Google Wave, there were security concerns around
// creating objects by submitting deltas against version 0. I'm not
// sure Walkaround has the same problems, but let's disallow it anyway.