AndrewJSchofield commented on code in PR #14384: URL: https://github.com/apache/kafka/pull/14384#discussion_r1324599448
########## clients/src/main/java/org/apache/kafka/clients/producer/internals/ProducerBatch.java: ########## @@ -94,9 +100,40 @@ public ProducerBatch(TopicPartition tp, MemoryRecordsBuilder recordsBuilder, lon this.isSplitBatch = isSplitBatch; float compressionRatioEstimation = CompressionRatioEstimator.estimation(topicPartition.topic(), recordsBuilder.compressionType()); + this.currentLeaderEpoch = PartitionInfo.UNKNOWN_LEADER_EPOCH; + this.leaderChangedAttempts = -1; recordsBuilder.setEstimatedCompressionRatio(compressionRatioEstimation); } + /* + * Returns whether the leader epoch has changed since the last attempt. + * @param latestLeaderEpoch The latest leader epoch. + * @return true if the leader has changed, otherwise false. + */ + boolean hasLeaderChanged(int latestLeaderEpoch) { + boolean leaderChanged = false; + // Checking for leader change makes sense only from 1st retry onwards(attempt >=1). + log.trace("For {}, attempting to change leader, currentLeaderEpoch:{}, leaderChangedAttempts:{}, latestLeaderEpoch: {}, current Attempt: {}", Review Comment: There are 4 separate calls to `attempts()` (or the equivalent of `attempts.get()`) in this method. Capture the value with a single call and use instead. -- 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