This is an automated email from the ASF dual-hosted git repository. dsmiley pushed a commit to branch branch_10x in repository https://gitbox.apache.org/repos/asf/solr.git
commit fa06b3ce19f615524af656dd27b543748b0a1235 Author: Serhiy Bzhezytskyy <[email protected]> AuthorDate: Sat Sep 5 14:33:55 2026 +0300 SOLR-18381: remove ClusterState.getReplicaNamesPerCollectionOnNode (#4768) Co-authored-by: Eric Pugh <[email protected]> (cherry picked from commit 594c2a4011461e8b443ec65e685d2f320c3c2d4a) --- .../src/java/org/apache/solr/cloud/ZkController.java | 13 +++++++++++-- .../test/org/apache/solr/cloud/ZkControllerTest.java | 9 ++++----- .../org/apache/solr/common/cloud/ClusterState.java | 18 ------------------ 3 files changed, 15 insertions(+), 25 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java b/solr/core/src/java/org/apache/solr/cloud/ZkController.java index 3ab82e68b1d..112b301b62c 100644 --- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java +++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java @@ -2975,8 +2975,17 @@ public class ZkController implements Closeable { log.info("Publish node={} as DOWN", nodeName); ClusterState clusterState = getClusterState(); - Map<String, List<Replica>> replicasPerCollectionOnNode = - clusterState.getReplicaNamesPerCollectionOnNode(nodeName); + Map<String, List<Replica>> replicasPerCollectionOnNode = new HashMap<>(); + clusterState + .collectionStream() + .forEach( + col -> { + List<Replica> replicas = col.getReplicasOnNode(nodeName); + if (!replicas.isEmpty()) { + replicasPerCollectionOnNode.put(col.getName(), replicas); + } + }); + if (distributedClusterStateUpdater.isDistributedStateUpdate()) { // Note that with the current implementation, when distributed cluster state updates are // enabled, we mark the node down synchronously from this thread, whereas the Overseer cluster diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java b/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java index 1d868787d48..53c9e3fd83e 100644 --- a/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java @@ -388,11 +388,10 @@ public class ZkControllerTest extends SolrCloudTestCase { zkController.getZkStateReader().forciblyRefreshAllClusterStateSlow(); ClusterState clusterState = zkController.getClusterState(); - Map<String, List<Replica>> replicasOnNode = - clusterState.getReplicaNamesPerCollectionOnNode(nodeName); - assertNotNull("There should be replicas on the existing node", replicasOnNode); - List<Replica> replicas = replicasOnNode.get(collectionName); - assertNotNull("There should be replicas for the collection on the existing node", replicas); + List<Replica> replicas = + clusterState.getCollection(collectionName).getReplicasOnNode(nodeName); + assertFalse( + "There should be replicas for the collection on the existing node", replicas.isEmpty()); assertEquals( "Wrong number of replicas for the collection on the existing node", 1, replicas.size()); for (Replica replica : replicas) { diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java b/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java index 40832f59b9d..36c3a3f7cb8 100644 --- a/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java +++ b/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java @@ -23,7 +23,6 @@ import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Objects; @@ -160,22 +159,6 @@ public class ClusterState implements MapWriter { return liveNodes; } - @Deprecated(since = "10.0") - public Map<String, List<Replica>> getReplicaNamesPerCollectionOnNode(final String nodeName) { - Map<String, List<Replica>> replicaNamesPerCollectionOnNode = new HashMap<>(); - collectionStates.values().stream() - .map(CollectionRef::get) - .filter(Objects::nonNull) - .forEach( - col -> { - List<Replica> replicas = col.getReplicasOnNode(nodeName); - if (!replicas.isEmpty()) { - replicaNamesPerCollectionOnNode.put(col.getName(), replicas); - } - }); - return replicaNamesPerCollectionOnNode; - } - /** Check if node is alive. */ public boolean liveNodesContain(String name) { return liveNodes.contains(name); @@ -190,7 +173,6 @@ public class ClusterState implements MapWriter { return sb.toString(); } - @Deprecated public static ClusterState createFromCollectionMap( int version, Map<String, Object> stateMap,
