guozhangwang commented on a change in pull request #9569:
URL: https://github.com/apache/kafka/pull/9569#discussion_r523232452



##########
File path: 
clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java
##########
@@ -713,6 +715,8 @@ public void sendOffsetsToTransaction(Map<TopicPartition, 
OffsetAndMetadata> offs
      *         does not support transactions (i.e. if its version is lower 
than 0.11.0.0)
      * @throws org.apache.kafka.common.errors.AuthorizationException fatal 
error indicating that the configured
      *         transactional.id is not authorized. See the exception for more 
details
+     * @throws org.apache.kafka.common.errors.InvalidProducerEpochException if 
the producer has attempted to produce with an old epoch

Review comment:
       In `maybeFailWithError` we only throw ProducerFenced directly if the 
lastError is ProducerFenced, otherwise we throw `KafkaException` which includes 
the lastError as its cause. That's also why we only throws `ProducerFenced` in 
the function signature.
   
   Regarding other exceptions: IllegalState / Interrupt / KafkaExceptions are 
all unchecked exceptions; Authorization / Timeout / UnsupportedVersionException 
are ApiExceptions but are common ones. Only ProducerFenced are the only 
producer-specific checked exceptions which we should add in throws.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to