// need to do eagerly, because (if a viewModel then) a
// viewModel's #viewModelMemento might need to use services
getPersistenceSession().getServicesInjector().injectServicesInto(pojo);
final Version datastoreVersion = getVersionIfAny(pc);
final RootOid originalOid ;
ObjectAdapter adapter = getAdapterManager().getAdapterFor(pojo);
if(adapter != null) {
ensureRootObject(pojo);
originalOid = (RootOid) adapter.getOid();
final Version originalVersion = adapter.getVersion();
// sync the pojo held by the adapter with that just loaded
getPersistenceSession().remapRecreatedPojo(adapter, pojo);
// since there was already an adapter, do concurrency check
// (but don't set abort cause if checking is suppressed through thread-local)
final RootOid thisOid = originalOid;
final Version thisVersion = originalVersion;
final Version otherVersion = datastoreVersion;
if(thisVersion != null &&
otherVersion != null &&
thisVersion.different(otherVersion)) {