skaundinya15 commented on a change in pull request #10743:
URL: https://github.com/apache/kafka/pull/10743#discussion_r659104126



##########
File path: 
clients/src/main/java/org/apache/kafka/clients/admin/DeleteConsumerGroupsResult.java
##########
@@ -40,7 +43,11 @@
      * individual deletions.
      */
     public Map<String, KafkaFuture<Void>> deletedGroups() {
-        return futures;
+        Map<String, KafkaFuture<Void>> deletedGroups = new 
HashMap<>(futures.size());
+        futures.forEach((key, future) -> {
+            deletedGroups.put(key.idValue, future);
+        });

Review comment:
       Nit: I think we could simplify this lambda expression further to just:
   
   ```java
   futures.forEach((key, future) -> deletedGroups.put(key.idValue, future));
   ```

##########
File path: 
clients/src/main/java/org/apache/kafka/clients/admin/DescribeConsumerGroupsResult.java
##########
@@ -34,39 +35,40 @@
 @InterfaceStability.Evolving
 public class DescribeConsumerGroupsResult {
 
-    private final Map<String, KafkaFuture<ConsumerGroupDescription>> futures;
+    private final Map<CoordinatorKey, 
KafkaFutureImpl<ConsumerGroupDescription>> futures;
 
-    public DescribeConsumerGroupsResult(final Map<String, 
KafkaFuture<ConsumerGroupDescription>> futures) {
+    public DescribeConsumerGroupsResult(final Map<CoordinatorKey, 
KafkaFutureImpl<ConsumerGroupDescription>> futures) {
         this.futures = futures;
     }
 
     /**
      * Return a map from group id to futures which yield group descriptions.
      */
     public Map<String, KafkaFuture<ConsumerGroupDescription>> 
describedGroups() {
-        return futures;
+        Map<String, KafkaFuture<ConsumerGroupDescription>> describedGroups = 
new HashMap<>();
+        for (Map.Entry<CoordinatorKey, 
KafkaFutureImpl<ConsumerGroupDescription>> entry : futures.entrySet()) {
+            describedGroups.put(entry.getKey().idValue, entry.getValue());
+        }

Review comment:
       Nit: Similar to how it's done in `DeleteConsumerGroupsResult`, perhaps 
we can replace this with a lambda expression instead?
   ```java
   futures.forEach((key, future) -> describedGroups.put(key.idValue, future));
   ```

##########
File path: 
clients/src/main/java/org/apache/kafka/clients/admin/DescribeConsumerGroupsResult.java
##########
@@ -34,39 +35,40 @@
 @InterfaceStability.Evolving
 public class DescribeConsumerGroupsResult {
 
-    private final Map<String, KafkaFuture<ConsumerGroupDescription>> futures;
+    private final Map<CoordinatorKey, 
KafkaFutureImpl<ConsumerGroupDescription>> futures;
 
-    public DescribeConsumerGroupsResult(final Map<String, 
KafkaFuture<ConsumerGroupDescription>> futures) {
+    public DescribeConsumerGroupsResult(final Map<CoordinatorKey, 
KafkaFutureImpl<ConsumerGroupDescription>> futures) {
         this.futures = futures;
     }
 
     /**
      * Return a map from group id to futures which yield group descriptions.
      */
     public Map<String, KafkaFuture<ConsumerGroupDescription>> 
describedGroups() {
-        return futures;
+        Map<String, KafkaFuture<ConsumerGroupDescription>> describedGroups = 
new HashMap<>();
+        for (Map.Entry<CoordinatorKey, 
KafkaFutureImpl<ConsumerGroupDescription>> entry : futures.entrySet()) {
+            describedGroups.put(entry.getKey().idValue, entry.getValue());
+        }
+        return describedGroups;
     }
 
     /**
      * Return a future which yields all ConsumerGroupDescription objects, if 
all the describes succeed.
      */
     public KafkaFuture<Map<String, ConsumerGroupDescription>> all() {
         return KafkaFuture.allOf(futures.values().toArray(new 
KafkaFuture[0])).thenApply(
-            new KafkaFuture.BaseFunction<Void, Map<String, 
ConsumerGroupDescription>>() {
-                @Override
-                public Map<String, ConsumerGroupDescription> apply(Void v) {
-                    try {
-                        Map<String, ConsumerGroupDescription> descriptions = 
new HashMap<>(futures.size());
-                        for (Map.Entry<String, 
KafkaFuture<ConsumerGroupDescription>> entry : futures.entrySet()) {
-                            descriptions.put(entry.getKey(), 
entry.getValue().get());
-                        }
-                        return descriptions;
-                    } catch (InterruptedException | ExecutionException e) {
-                        // This should be unreachable, since the 
KafkaFuture#allOf already ensured
-                        // that all of the futures completed successfully.
-                        throw new RuntimeException(e);
+            nil -> {
+                Map<String, ConsumerGroupDescription> descriptions = new 
HashMap<>(futures.size());
+                try {
+                    for (Map.Entry<CoordinatorKey, 
KafkaFutureImpl<ConsumerGroupDescription>> entry : futures.entrySet()) {

Review comment:
       Nit: We could also use the lambda expression instead:
   
   ```java
       public KafkaFuture<Map<String, ConsumerGroupDescription>> all() {
           return KafkaFuture.allOf(futures.values().toArray(new 
KafkaFuture[0])).thenApply(
               nil -> {
                   Map<String, ConsumerGroupDescription> descriptions = new 
HashMap<>(futures.size());
                   futures.forEach((key, future) -> {
                       try {
                           descriptions.put(key.idValue, future.get());
                       } catch (InterruptedException | ExecutionException e) {
                           // This should be unreachable, since the 
KafkaFuture#allOf already ensured
                           // that all of the futures completed successfully.
                           throw new RuntimeException(e);
                       }
                   });
                   return descriptions;
               });
       }
   ```
   




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