Pascal Gélinas created KAFKA-6744:
-------------------------------------
Summary: MockProducer with transaction enabled doesn't fail on
commit if a record was failed
Key: KAFKA-6744
URL: https://issues.apache.org/jira/browse/KAFKA-6744
Project: Kafka
Issue Type: Bug
Components: producer
Affects Versions: 1.0.0
Reporter: Pascal Gélinas
The KafkaProducer#send documentation states the following:
When used as part of a transaction, it is not necessary to define a callback or
check the result of the future in order to detect errors from send. If any of
the send calls failed with an irrecoverable error, the final
commitTransaction() call will fail and throw the exception from the last failed
send.
So I was expecting the following to throw an exception:
{{*MockProducer*<String, byte[]> producer = new MockProducer<>(false,}}
{{ new StringSerializer(), new ByteArraySerializer());}}
{{producer.initTransactions();}}
{{producer.beginTransaction();}}
{{producer.send(new ProducerRecord<>("foo", new byte[]{}));}}
{{producer.errorNext(new RuntimeException());}}
{{producer.commitTransaction(); // Expecting this to throw}}
Unfortunately, the commitTransaction() call returns successfully.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)