junrao commented on code in PR #12365: URL: https://github.com/apache/kafka/pull/12365#discussion_r923872243
########## clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java: ########## @@ -1491,20 +1495,25 @@ public void setPartition(int partition) { if (log.isTraceEnabled()) { Review Comment: It seems we have been mostly using Objects.requireNonNull for null assertion in our code. It doesn't seem to add too much overhead and helps identify issues in production early on. For consistency, perhaps we could use Objects.requireNonNull instead of assert. @ijuma : What do you recommend that we use for assertions like `assert partitionInfo == stickyPartitionInfo.get()`? ########## 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: If a user passes in a null record in send(), we will be throwing a NullPointException somewhere. So, we probably could just throw an exception early in that case without going through the callback and fix the test accordingly. We probably could do that in a separate PR in trunk. -- 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