void unlock() { if (--holdCount <= 0) { try { txnHandle.commit(); } catch (RejoinException e) { throw new RejoinException("Exception caught during commit, transaction may or may not have committed.", e); } finally { threadState.remove(); } } } }
void unlock() { if (--holdCount <= 0) { try { txnHandle.commit(); } catch (RejoinException e) { throw new RejoinException("Exception caught during commit, transaction may or may not have committed.", e); } finally { threadState.remove(); } } } }
@Override public void commitAtomicTransaction(LockID lock, LockLevel level) throws AbortedOperationException { try { delegate.commitAtomicTransaction(lock, level); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public <T> T registerObjectByNameIfAbsent(String name, T object) { try { return delegate.registerObjectByNameIfAbsent(name, object); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public void removeRejoinLifecycleListener(RejoinLifecycleListener listener) { try { delegate.removeRejoinLifecycleListener(listener); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public void beginAtomicTransaction(LockID lock, LockLevel level) throws AbortedOperationException { assertRejoinNotInProgress(); try { delegate.beginAtomicTransaction(lock, level); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public <T> T lookupRegisteredObjectByName(String name, Class<T> expectedType) { try { assertNotLockedBeforeRejoin(); return delegate.lookupRegisteredObjectByName(name, expectedType); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public void fireOperatorEvent(EventLevel coreOperatorEventLevel, EventSubsystem coreEventSubsytem, EventType eventType, String eventMessage) { assertRejoinNotInProgress(); try { delegate.fireOperatorEvent(coreOperatorEventLevel, coreEventSubsytem, eventType, eventMessage); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public DsoNode getCurrentNode() { assertRejoinNotInProgress(); try { return delegate.getCurrentNode(); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public void verifyCapability(String capability) { assertRejoinNotInProgress(); try { delegate.verifyCapability(capability); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public boolean isHeldByCurrentThread(Object lockID, LockLevel level) throws AbortedOperationException { assertRejoinNotInProgress(); try { return delegate.isHeldByCurrentThread(lockID, level); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public MetaDataDescriptor createMetaDataDescriptor(String category) { assertRejoinNotInProgress(); try { return delegate.createMetaDataDescriptor(category); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public AbortableOperationManager getAbortableOperationManager() { assertRejoinNotInProgress(); try { return delegate.getAbortableOperationManager(); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public Object lookupRoot(String name, GroupID gid) { assertRejoinNotInProgress(); try { assertNotLockedBeforeRejoin(); return delegate.lookupRoot(name, gid); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public void throttlePutIfNecessary(final ObjectID object) throws AbortedOperationException { assertRejoinNotInProgress(); try { assertNotLockedBeforeRejoin(); delegate.throttlePutIfNecessary(object); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public void logicalInvoke(Object object, LogicalOperation method, Object[] params) { assertRejoinNotInProgress(); try { assertNotLockedBeforeRejoin(); delegate.logicalInvoke(object, method, params); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public void lockIDNotify(Object lockID) throws AbortedOperationException { assertRejoinNotInProgress(); try { assertNotLockedBeforeRejoin(); delegate.lockIDNotify(lockID); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public void lockIDNotifyAll(Object lockID) throws AbortedOperationException { assertRejoinNotInProgress(); try { assertNotLockedBeforeRejoin(); delegate.lockIDNotifyAll(lockID); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public Object lookupObject(ObjectID id) throws AbortedOperationException { assertRejoinNotInProgress(); try { assertNotLockedBeforeRejoin(); return delegate.lookupObject(id); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public boolean tryBeginLock(Object lockID, LockLevel level, long timeout, TimeUnit timeUnit) throws InterruptedException, AbortedOperationException { assertRejoinNotInProgress(); try { assertNotLockedBeforeRejoin(); resetRejoinCountIfNecessary(); return delegate.tryBeginLock(lockID, level, timeout, timeUnit); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }