Since ProblemDao.instance.getById(problemId) and ofy.put(problem) are not in the same transaction, there might be a race condition here.