diff --git a/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java b/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java index ec896ca6d6422..f62e3b714813b 100644 --- a/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java +++ b/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java @@ -2242,10 +2242,9 @@ public DescribeReplicaLogDirsResult describeReplicaLogDirs(Collection> partitionsByBroker = new HashMap<>(); - for (TopicPartitionReplica replica: replicas) { - if (!partitionsByBroker.containsKey(replica.brokerId())) - partitionsByBroker.put(replica.brokerId(), new HashSet<>()); - partitionsByBroker.get(replica.brokerId()).add(new TopicPartition(replica.topic(), replica.partition())); + for (TopicPartitionReplica replica : replicas) { + partitionsByBroker.computeIfAbsent(replica.brokerId(), key -> new HashSet<>()) + .add(new TopicPartition(replica.topic(), replica.partition())); } final long now = time.milliseconds(); @@ -2414,9 +2413,8 @@ void handleResponse(AbstractResponse abstractResponse) { } else { Node node = cluster.leaderFor(entry.getKey()); if (node != null) { - if (!leaders.containsKey(node)) - leaders.put(node, new HashMap<>()); - leaders.get(node).put(entry.getKey(), entry.getValue().beforeOffset()); + leaders.computeIfAbsent(node, key -> new HashMap<>()).put(entry.getKey(), + entry.getValue().beforeOffset()); } else { future.completeExceptionally(Errors.LEADER_NOT_AVAILABLE.exception()); } diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed/ConnectProtocol.java b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed/ConnectProtocol.java index 15fc6059a627b..c167e80991fe5 100644 --- a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed/ConnectProtocol.java +++ b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed/ConnectProtocol.java @@ -387,21 +387,11 @@ protected Map> asMap() { // Using LinkedHashMap preserves the ordering, which is helpful for tests and debugging Map> taskMap = new LinkedHashMap<>(); for (String connectorId : new HashSet<>(connectorIds)) { - Collection connectorTasks = taskMap.get(connectorId); - if (connectorTasks == null) { - connectorTasks = new ArrayList<>(); - taskMap.put(connectorId, connectorTasks); - } - connectorTasks.add(CONNECTOR_TASK); + taskMap.computeIfAbsent(connectorId, key -> new ArrayList<>()).add(CONNECTOR_TASK); } for (ConnectorTaskId taskId : taskIds) { String connectorId = taskId.connector(); - Collection connectorTasks = taskMap.get(connectorId); - if (connectorTasks == null) { - connectorTasks = new ArrayList<>(); - taskMap.put(connectorId, connectorTasks); - } - connectorTasks.add(taskId.task()); + taskMap.computeIfAbsent(connectorId, key -> new ArrayList<>()).add(taskId.task()); } return taskMap; }