lianetm commented on code in PR #15585:
URL: https://github.com/apache/kafka/pull/15585#discussion_r1538173798


##########
clients/src/main/java/org/apache/kafka/clients/consumer/internals/HeartbeatRequestManager.java:
##########
@@ -550,6 +550,11 @@ public ConsumerGroupHeartbeatRequestData 
buildRequestData() {
             } else {
                 // SubscribedTopicRegex - only sent if has changed since the 
last heartbeat
                 //                      - not supported yet
+                TreeSet<String> subscribedTopicNames = new 
TreeSet<>(this.subscriptions.subscription());
+                if (sendAllFields || 
!subscribedTopicNames.equals(sentFields.subscribedTopicNames)) {
+                    data.setSubscribedTopicNames(new 
ArrayList<>(this.subscriptions.subscription()));
+                    sentFields.subscribedTopicNames = subscribedTopicNames;
+                }

Review Comment:
   With this addition we end up with the exact same code repeated for the `if` 
and `else`, so I would say we should find a better way of doing this. First 
solution that comes to mind is to remove the if/else. In the end, we have a 
single case to handle here: send explicit subscriptions (topic names) to the 
broker (from the HB Mgr POV and to the broker, it does not make a diff if the 
topic list came from a call to subscribe with topics or a call to subscribe 
with Pattern that we internally resolved on the client) 
   
   When we take on the next task of supporting the new regex, we'll actually 
have to send something different here, so we can decide then how to best 
differentiate the 2 cases. For now, including this PR, we only support 1 case 
regarding the content of what we send in the HB regarding subscription. Makes 
sense?



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