Guozhang Wang created KAFKA-1863:
------------------------------------
Summary: Exception categories / hierarchy in clients
Key: KAFKA-1863
URL: https://issues.apache.org/jira/browse/KAFKA-1863
Project: Kafka
Issue Type: Bug
Reporter: Guozhang Wang
Assignee: Guozhang Wang
Fix For: 0.9.0
In the new clients package we introduces a new set of exceptions, but its
hierarchy is not very clear as of today:
{code}
RuntimeException -> KafkaException -> BufferExhastedException
-> ConfigException
->
SerializationException
->
QuotaViolationException
-> SchemaException
-> ApiException
ApiException -> InvalidTopicException
-> OffsetMetadataTooLarge (probabaly need to be renamed)
-> RecordBatchTooLargeException
-> RecordTooLargeException
-> UnknownServerException
-> RetriableException
RetriableException -> CorruptRecordException
-> InvalidMetadataException
-> NotEnoughtReplicasAfterAppendException
-> NotEnoughReplicasException
-> OffsetOutOfRangeException
-> TimeoutException
-> UnknownTopicOrPartitionException
{code}
KafkaProducer.send() may throw KafkaExceptions that are not ApiExceptions;
other exceptions will be set in the returned future metadata.
We need better to
1. Re-examine the hierarchy. For example, for producers only exceptions that
are thrown directly from the caller thread before it is appended to the batch
buffer should be ApiExceptions; some exceptions could be renamed / merged.
2. Clearly document the exception category / hierarchy as part of the release.
[~criccomini] may have some more feedbacks for this issue from Samza's usage
experience. [~jkreps]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)