ijuma commented on code in PR #12365:
URL: https://github.com/apache/kafka/pull/12365#discussion_r924191711


##########
clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java:
##########
@@ -1465,13 +1465,17 @@ public boolean isDone() {
     private class AppendCallbacks<K, V> implements 
RecordAccumulator.AppendCallbacks {
         private final Callback userCallback;
         private final ProducerInterceptors<K, V> interceptors;
-        private final ProducerRecord<K, V> record;
+        private ProducerRecord<K, V> record;
+        private final String topic;
         protected int partition = RecordMetadata.UNKNOWN_PARTITION;
 
         private AppendCallbacks(Callback userCallback, ProducerInterceptors<K, 
V> interceptors, ProducerRecord<K, V> record) {
             this.userCallback = userCallback;
             this.interceptors = interceptors;
             this.record = record;
+            // Note a record would be null only if the client application has 
a bug, but we don't want to
+            // have NPE here, because the interceptors would not be notified 
(see .doSend).
+            topic = record != null ? record.topic() : null;

Review Comment:
   I looked at the test and it seems to check that an exception is thrown? As 
@junrao said, this can be done by validating what `send` receives instead of 
polluting the whole codebase. I'm OK if we file a JIRA for that and do it as a 
separate PR. But we should remove this code when we do that.



-- 
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.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

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

Reply via email to