// the object has never been persisted in this transaction
entry = getObjectEntry( object );
if ( entry == null )
throw new ObjectNotPersistentException( Messages.format( "persist.objectNotPersistent", object.getClass().getName()) );
if ( entry.deleted )
throw new ObjectDeletedException( Messages.format("persist.objectDeleted", object.getClass().getName(), entry.oid.getIdentity() ) );
try {
entry.engine.softLock( this, entry.oid, timeout );
} catch ( ObjectDeletedWaitingForLockException except ) {
// Object has been deleted outside this transaction,
// forget about it