void rollback() { if (!useTransactions || !activeTransaction) { return; } producer.abortTransaction(); activeTransaction = false; }
void rollback() { if (!useTransactions || !activeTransaction) { return; } producer.abortTransaction(); activeTransaction = false; }
void rollback() { if (!useTransactions || !activeTransaction) { return; } producer.abortTransaction(); activeTransaction = false; }
@Override public void abortTransaction() { delegate.abortTransaction(); }
logger.error(e.getMessage(), e); if (kafkaProperties.getTransaction()) { producerTmp.abortTransaction();
public void rollback() { this.producer.abortTransaction(); }
@Override public void abortTransaction() throws ProducerFencedException { if (logger.isDebugEnabled()) { logger.debug("abortTransaction: " + this); } try { this.delegate.abortTransaction(); } catch (RuntimeException e) { if (logger.isErrorEnabled()) { logger.error("Abort failed: " + this, e); } this.txFailed = true; throw e; } }
@SuppressWarnings("unchecked") @Test public void discardRemainingRecordsFromPollAndSeek() throws Exception { assertThat(this.config.deliveryLatch.await(10, TimeUnit.SECONDS)).isTrue(); assertThat(this.config.pollLatch.await(10, TimeUnit.SECONDS)).isTrue(); this.registry.stop(); assertThat(this.config.closeLatch.await(10, TimeUnit.SECONDS)).isTrue(); InOrder inOrder = inOrder(this.consumer, this.producer); inOrder.verify(this.consumer).subscribe(any(Collection.class), any(ConsumerRebalanceListener.class)); inOrder.verify(this.consumer).poll(Duration.ofMillis(ContainerProperties.DEFAULT_POLL_TIMEOUT)); inOrder.verify(this.producer).beginTransaction(); inOrder.verify(this.consumer).seek(new TopicPartition("foo", 0), 0L); inOrder.verify(this.consumer).seek(new TopicPartition("foo", 1), 0L); inOrder.verify(this.consumer).seek(new TopicPartition("foo", 2), 0L); inOrder.verify(this.producer).abortTransaction(); inOrder.verify(this.consumer).poll(Duration.ofMillis(ContainerProperties.DEFAULT_POLL_TIMEOUT)); inOrder.verify(this.producer).beginTransaction(); Map<TopicPartition, OffsetAndMetadata> offsets = new LinkedHashMap<>(); offsets.put(new TopicPartition("foo", 0), new OffsetAndMetadata(2L)); offsets.put(new TopicPartition("foo", 1), new OffsetAndMetadata(2L)); offsets.put(new TopicPartition("foo", 2), new OffsetAndMetadata(2L)); inOrder.verify(this.producer).sendOffsetsToTransaction(offsets, CONTAINER_ID); inOrder.verify(this.producer).commitTransaction(); assertThat(this.config.ehException).isInstanceOf(ListenerExecutionFailedException.class); assertThat(((ListenerExecutionFailedException) this.config.ehException).getGroupId()).isEqualTo(CONTAINER_ID); }
producer.abortTransaction(); throw e;
inOrder.verify(this.consumer).seek(new TopicPartition("foo", 1), 1L); inOrder.verify(this.consumer).seek(new TopicPartition("foo", 2), 0L); inOrder.verify(this.producer).abortTransaction(); inOrder.verify(this.consumer).poll(Duration.ofMillis(ContainerProperties.DEFAULT_POLL_TIMEOUT)); offsets.clear();
inOrder.verify(this.consumer).seek(new TopicPartition("foo", 1), 1L); inOrder.verify(this.consumer).seek(new TopicPartition("foo", 2), 0L); inOrder.verify(this.producer).abortTransaction(); inOrder.verify(this.consumer).poll(Duration.ofMillis(ContainerProperties.DEFAULT_POLL_TIMEOUT)); offsets.clear();
@Override public void abortTransaction() throws ProducerFencedException { this.delegate.abortTransaction(); }
void rollback() { if (!useTransactions || !activeTransaction) { return; } producer.abortTransaction(); activeTransaction = false; }
@Override public void abortTransaction() throws ProducerFencedException { producer.abortTransaction(); }
void rollback() { if (!useTransactions || !activeTransaction) { return; } producer.abortTransaction(); activeTransaction = false; }
@Override public void abortTransaction() throws ProducerFencedException { this.delegate.abortTransaction(); }
private void tryRollback(Producer<?, ?> producer) { try { producer.abortTransaction(); } catch (Exception e) { logger.warn("Unable to abort transaction", e); //not re-throwing exception, its too late } } }
inOrder.verify(producer, never()).sendOffsetsToTransaction(anyMap(), anyString()); inOrder.verify(producer, never()).commitTransaction(); inOrder.verify(producer).abortTransaction(); inOrder.verify(producer).close(); verify(consumer).seek(topicPartition0, 0);
inOrder.verify(producer, never()).sendOffsetsToTransaction(anyMap(), anyString()); inOrder.verify(producer, never()).commitTransaction(); inOrder.verify(producer).abortTransaction(); inOrder.verify(producer).close(); verify(consumer).seek(topicPartition0, 0);
private void tryRollback(Producer<?, ?> producer) { try { producer.abortTransaction(); } catch (Exception e) { logger.warn("Unable to abort transaction", e); //not re-throwing exception, its too late } }