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(); } } } }
public void assertRejoinNotInProgress() throws RejoinException { if (rejoinInProgress) throw new RejoinException("Rejoin is in progress"); }
@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 addRejoinLifecycleListener(RejoinLifecycleListener listener) { try { delegate.addRejoinLifecycleListener(listener); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
private void assertNotLockedBeforeRejoin() { if (isLockedBeforeRejoin()) { throw new RejoinException("Lock is not valid after rejoin"); } }
@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 TCProperties getTCProperties() { assertRejoinNotInProgress(); try { return delegate.getTCProperties(); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public void registerBeforeShutdownHook(Runnable hook) { assertRejoinNotInProgress(); try { delegate.registerBeforeShutdownHook(hook); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public TCLogger getLogger(String loggerName) { assertRejoinNotInProgress(); try { return delegate.getLogger(loggerName); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }
@Override public void addTransactionCompleteListener(TransactionCompleteListener listener) { assertRejoinNotInProgress(); try { delegate.addTransactionCompleteListener(listener); } catch (PlatformRejoinException e) { throw new RejoinException(e); } }