JimmyWang6 commented on code in PR #19820:
URL: https://github.com/apache/kafka/pull/19820#discussion_r2164757904


##########
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupCoordinatorService.java:
##########
@@ -682,15 +682,43 @@ CompletableFuture<AlterShareGroupOffsetsResponseData> 
persisterInitialize(
                         
handlePersisterInitializeResponse(request.groupTopicPartitionData().groupId(), 
result, new ShareGroupHeartbeatResponseData());
                         return response;
                     } else {
-                        //TODO build new AlterShareGroupOffsetsResponseData 
for error response
-                        return response;
+                        return buildErrorResponse(response, result);
                     }
                 } else {
                     return buildErrorResponse(request, response, exp);
                 }
 
             });
     }
+    
+    private AlterShareGroupOffsetsResponseData 
buildErrorResponse(AlterShareGroupOffsetsResponseData response, 
InitializeShareGroupStateResult result) {
+        AlterShareGroupOffsetsResponseData data = new 
AlterShareGroupOffsetsResponseData();
+        data.setResponses(
+            new 
AlterShareGroupOffsetsResponseData.AlterShareGroupOffsetsResponseTopicCollection(response.responses().stream()
+                .map(topic -> {
+                    
AlterShareGroupOffsetsResponseData.AlterShareGroupOffsetsResponseTopic 
topicData = new 
AlterShareGroupOffsetsResponseData.AlterShareGroupOffsetsResponseTopic()
+                        .setTopicName(topic.topicName());
+                    topic.partitions().forEach(partition -> {
+                        
AlterShareGroupOffsetsResponseData.AlterShareGroupOffsetsResponsePartition 
partitionData;
+                        PartitionErrorData error = 
result.getErrors().get(topic.topicId()).get(partition.partitionIndex());

Review Comment:
   Good catch! My idea is if users want to alter one nonexistent partition, the 
error code and message will be added to `AlterShareGroupOffsetsResponseData` 
when executing `groupMetadataManager.completeAlterShareGroupOffsets`. So I plan 
to skip the processed topicPartition which already had an error code, for which 
the rest of the partitions should exist in InitializeShareGroupStateResult.
   



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