synchronized void transitionToFatalError(RuntimeException exception) { transitionTo(State.FATAL_ERROR, exception); }
private void transitionTo(State target) { transitionTo(target, null); }
synchronized void transitionToAbortableError(RuntimeException exception) { if (currentState == State.ABORTING_TRANSACTION) { log.debug("Skipping transition to abortable error state since the transaction is already being " + "aborted. Underlying exception: ", exception); return; } transitionTo(State.ABORTABLE_ERROR, exception); }
private synchronized void completeTransaction() { transitionTo(State.READY); lastError = null; transactionStarted = false; newPartitionsInTransaction.clear(); pendingPartitionsInTransaction.clear(); partitionsInTransaction.clear(); }
public synchronized void beginTransaction() { ensureTransactional(); maybeFailWithError(); transitionTo(State.IN_TRANSACTION); }
public synchronized TransactionalRequestResult beginAbort() { ensureTransactional(); if (currentState != State.ABORTABLE_ERROR) maybeFailWithError(); transitionTo(State.ABORTING_TRANSACTION); // We're aborting the transaction, so there should be no need to add new partitions newPartitionsInTransaction.clear(); return beginCompletingTransaction(TransactionResult.ABORT); }
public synchronized TransactionalRequestResult beginCommit() { ensureTransactional(); maybeFailWithError(); transitionTo(State.COMMITTING_TRANSACTION); return beginCompletingTransaction(TransactionResult.COMMIT); }
public synchronized TransactionalRequestResult initializeTransactions() { ensureTransactional(); transitionTo(State.INITIALIZING); setProducerIdAndEpoch(ProducerIdAndEpoch.NONE); this.nextSequence.clear(); InitProducerIdRequest.Builder builder = new InitProducerIdRequest.Builder(transactionalId, transactionTimeoutMs); InitProducerIdHandler handler = new InitProducerIdHandler(builder); enqueueRequest(handler); return handler.result; }