@Override public void lockIDWait(final LockID lock, final long timeout) throws InterruptedException, AbortedOperationException { if (isCurrentTransactionAtomic()) { throw new UnsupportedOperationException( "Wait is not supported under an atomic transaction"); } try { this.txManager.commit(lock, LockLevel.WRITE, false, null); } catch (final UnlockedSharedObjectException e) { throw new IllegalMonitorStateException(); } try { this.lockManager.wait(lock, null, timeout); } finally { // XXX this is questionable this.txManager.begin(lock, LockLevel.WRITE, false); } }
@Override public void lockIDWait(final LockID lock, final long timeout) throws InterruptedException, AbortedOperationException { if (isCurrentTransactionAtomic()) { throw new UnsupportedOperationException( "Wait is not supported under an atomic transaction"); } try { this.txManager.commit(lock, LockLevel.WRITE, false, null); } catch (final UnlockedSharedObjectException e) { throw new IllegalMonitorStateException(); } try { this.lockManager.wait(lock, null, timeout); } finally { // XXX this is questionable this.txManager.begin(lock, LockLevel.WRITE, false); } }
@Override public void wait(final LockID lock, final Object waitObject) throws InterruptedException, AbortedOperationException { if (clusteredLockingEnabled(lock) && (lock instanceof DsoLockID)) { if (isCurrentTransactionAtomic()) { throw new UnsupportedOperationException( "Wait is not supported under an atomic transaction"); } try { this.txManager.commit(lock, LockLevel.WRITE, false, null); } catch (final UnlockedSharedObjectException e) { throw new IllegalMonitorStateException(); } try { this.lockManager.wait(lock, waitObject); } finally { // XXX this is questionable this.txManager.begin(lock, LockLevel.WRITE, false); } } else { waitObject.wait(); } }
@Override public void wait(final LockID lock, final Object waitObject, final long timeout) throws InterruptedException, AbortedOperationException { if (clusteredLockingEnabled(lock) && (lock instanceof DsoLockID)) { if (isCurrentTransactionAtomic()) { throw new UnsupportedOperationException( "Wait is not supported under an atomic transaction"); } try { this.txManager.commit(lock, LockLevel.WRITE, false, null); } catch (final UnlockedSharedObjectException e) { throw new IllegalMonitorStateException(); } try { this.lockManager.wait(lock, waitObject, timeout); } finally { // XXX this is questionable this.txManager.begin(lock, LockLevel.WRITE, false); } } else { waitObject.wait(timeout); } }
@Override public void wait(final LockID lock, final Object waitObject) throws InterruptedException, AbortedOperationException { if (clusteredLockingEnabled(lock) && (lock instanceof DsoLockID)) { if (isCurrentTransactionAtomic()) { throw new UnsupportedOperationException( "Wait is not supported under an atomic transaction"); } try { this.txManager.commit(lock, LockLevel.WRITE, false, null); } catch (final UnlockedSharedObjectException e) { throw new IllegalMonitorStateException(); } try { this.lockManager.wait(lock, waitObject); } finally { // XXX this is questionable this.txManager.begin(lock, LockLevel.WRITE, false); } } else { waitObject.wait(); } }
@Override public void wait(final LockID lock, final Object waitObject, final long timeout) throws InterruptedException, AbortedOperationException { if (clusteredLockingEnabled(lock) && (lock instanceof DsoLockID)) { if (isCurrentTransactionAtomic()) { throw new UnsupportedOperationException( "Wait is not supported under an atomic transaction"); } try { this.txManager.commit(lock, LockLevel.WRITE, false, null); } catch (final UnlockedSharedObjectException e) { throw new IllegalMonitorStateException(); } try { this.lockManager.wait(lock, waitObject, timeout); } finally { // XXX this is questionable this.txManager.begin(lock, LockLevel.WRITE, false); } } else { waitObject.wait(timeout); } }