session.checkAndRefreshInvalidObject(objectFromCache, cacheKey, descriptor);
} else {
// Check if we have locked all required objects already.
if (this.objectsLockedForClone == null) {
// PERF: If a simple object just acquire a simple read-lock.
if (concreteDescriptor.shouldAcquireCascadedLocks()) {
this.objectsLockedForClone = parentIdentityMapAccessor.getWriteLockManager().acquireLocksForClone(objectFromCache, concreteDescriptor, cacheKey, session);
} else {
session.checkAndRefreshInvalidObject(objectFromCache, cacheKey, descriptor);
cacheKey.acquireReadLock();
}