protected void optimisticLockInternal(OpenJPAStateManager sm, int level, int timeout, Object sdata, boolean postLockVersionCheck) { // Set lock level first to prevent infinite recursion with // transactional(..) call setLockLevel(sm, level); if (level >= LockLevels.LOCK_WRITE && _versionUpdateOnWriteLock) getContext().transactional(sm.getManagedInstance(), true, null); else if (level >= LockLevels.LOCK_READ && _versionCheckOnReadLock) getContext().transactional(sm.getManagedInstance(), false, null); }
protected void optimisticLockInternal(OpenJPAStateManager sm, int level, int timeout, Object sdata, boolean postLockVersionCheck) { // Set lock level first to prevent infinite recursion with // transactional(..) call setLockLevel(sm, level); if (level >= LockLevels.LOCK_WRITE && _versionUpdateOnWriteLock) getContext().transactional(sm.getManagedInstance(), true, null); else if (level >= LockLevels.LOCK_READ && _versionCheckOnReadLock) getContext().transactional(sm.getManagedInstance(), false, null); }
protected void optimisticLockInternal(OpenJPAStateManager sm, int level, int timeout, Object sdata, boolean postLockVersionCheck) { // Set lock level first to prevent infinite recursion with // transactional(..) call setLockLevel(sm, level); if (level >= LockLevels.LOCK_WRITE && _versionUpdateOnWriteLock) getContext().transactional(sm.getManagedInstance(), true, null); else if (level >= LockLevels.LOCK_READ && _versionCheckOnReadLock) getContext().transactional(sm.getManagedInstance(), false, null); }
protected void optimisticLockInternal(OpenJPAStateManager sm, int level, int timeout, Object sdata, boolean postLockVersionCheck) { // Set lock level first to prevent infinite recursion with // transactional(..) call setLockLevel(sm, level); if (level >= LockLevels.LOCK_WRITE && _versionUpdateOnWriteLock) getContext().transactional(sm.getManagedInstance(), true, null); else if (level >= LockLevels.LOCK_READ && _versionCheckOnReadLock) getContext().transactional(sm.getManagedInstance(), false, null); }
private void commonLock(OpenJPAStateManager sm, int level, int timeout, Object sdata, boolean postLockVersionCheck) { if (level == LOCK_NONE) return; while (sm.getOwner() != null) sm = sm.getOwner(); int oldLevel = getLockLevel(sm); if (!sm.isPersistent() || sm.isNew() || level <= oldLevel) return; try { lockInternal(sm, level, timeout, sdata, postLockVersionCheck); } catch (RuntimeException re) { // revert lock setLockLevel(sm, oldLevel); throw re; } }
private void commonLock(OpenJPAStateManager sm, int level, int timeout, Object sdata, boolean postLockVersionCheck) { if (level == LOCK_NONE) return; while (sm.getOwner() != null) sm = sm.getOwner(); int oldLevel = getLockLevel(sm); if (!sm.isPersistent() || sm.isNew() || level <= oldLevel) return; try { lockInternal(sm, level, timeout, sdata, postLockVersionCheck); } catch (RuntimeException re) { // revert lock setLockLevel(sm, oldLevel); throw re; } }
/** * Marks the instance's transactional status in accordance with * the settings of {@link #getVersionCheckOnReadLock} * and {@link #getVersionUpdateOnWriteLock}. Override to perform * additional locking. * * @see StoreContext#transactional */ protected void lockInternal(OpenJPAStateManager sm, int level, int timeout, Object sdata) { // Set lock level first to prevent infinite recursion with // transactional(..) call setLockLevel(sm, level); if (level >= LockLevels.LOCK_WRITE && _versionUpdateOnWriteLock) getContext().transactional(sm.getManagedInstance(), true, null); else if (level >= LockLevels.LOCK_READ && _versionCheckOnReadLock) getContext().transactional(sm.getManagedInstance(), false, null); }
private void commonLock(OpenJPAStateManager sm, int level, int timeout, Object sdata, boolean postLockVersionCheck) { if (level == LOCK_NONE) return; while (sm.getOwner() != null) sm = sm.getOwner(); int oldLevel = getLockLevel(sm); if (!sm.isPersistent() || sm.isNew() || level <= oldLevel) return; try { lockInternal(sm, level, timeout, sdata, postLockVersionCheck); } catch (RuntimeException re) { // revert lock setLockLevel(sm, oldLevel); throw re; } }
private void commonLock(OpenJPAStateManager sm, int level, int timeout, Object sdata, boolean postLockVersionCheck) { if (level == LOCK_NONE) return; while (sm.getOwner() != null) sm = sm.getOwner(); int oldLevel = getLockLevel(sm); if (!sm.isPersistent() || sm.isNew() || level <= oldLevel) return; try { lockInternal(sm, level, timeout, sdata, postLockVersionCheck); } catch (RuntimeException re) { // revert lock setLockLevel(sm, oldLevel); throw re; } }
/** * Delegates to {@link #lockInternal} after traversing to owning * instance (if embedded) and assuring that the instance is persistent, * is not new, and is not already locked at a higher level. After * locking, calls {@link #setLockLevel} with the given level. */ public void lock(OpenJPAStateManager sm, int level, int timeout, Object sdata) { if (level == LOCK_NONE) return; while (sm.getOwner() != null) sm = sm.getOwner(); int oldLevel = getLockLevel(sm); if (!sm.isPersistent() || sm.isNew() || level <= oldLevel) return; try { lockInternal(sm, level, timeout, sdata); } catch (RuntimeException re) { // revert lock setLockLevel(sm, oldLevel); throw re; } }