public void refreshLock(OpenJPAStateManager sm, int level, int timeout, Object sdata) { try { _refreshing = true; commonLock(sm, level, timeout, sdata, false); } finally { _refreshing = false; } }
/** * 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, boolean postLockVersionCheck) { optimisticLockInternal(sm, level, timeout, sdata, postLockVersionCheck); }
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; } }
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); }
public void setContext(StoreContext ctx) { super.setContext(ctx); _store = (JDBCStore) ctx.getStoreManager().getInnermostDelegate(); }
protected void lockInternal(OpenJPAStateManager sm, int level, int timeout, Object sdata) { // we can skip any already-locked instance regardless of level because // we treat all locks the same (though super doesn't) if (getLockLevel(sm) == LOCK_NONE) { // only need to lock if not loaded from locking result ConnectionInfo info = (ConnectionInfo) sdata; if (info == null || info.result == null || !info.result.isLocking()) lockRow(sm, timeout); } super.lockInternal(sm, level, timeout, sdata); }
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; } }
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); }
public void setContext(StoreContext ctx) { super.setContext(ctx); _store = (JDBCStore) ctx.getStoreManager().getInnermostDelegate(); }
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; } }
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); }
public void refreshLock(OpenJPAStateManager sm, int level, int timeout, Object sdata) { try { _refreshing = true; commonLock(sm, level, timeout, sdata, false); } finally { _refreshing = false; } }
public void setContext(StoreContext ctx) { super.setContext(ctx); _store = (JDBCStore) ctx.getStoreManager().getInnermostDelegate(); }
/** * 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, boolean postLockVersionCheck) { optimisticLockInternal(sm, level, timeout, sdata, postLockVersionCheck); }
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; } }
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); }
/** * 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) { commonLock(sm, level, timeout, sdata, !_refreshing); }
public void setContext(StoreContext ctx) { super.setContext(ctx); _store = (JDBCStore) ctx.getStoreManager().getInnermostDelegate(); }
/** * 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, boolean postLockVersionCheck) { optimisticLockInternal(sm, level, timeout, sdata, postLockVersionCheck); }
/** * 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; } }