This is an automated email from the ASF dual-hosted git repository.

epugh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new 5566b8bd3b4 Java cleanups in o.a.s.cluster.events files (#4554)
5566b8bd3b4 is described below

commit 5566b8bd3b45969eafaa7b4304fe8cfa87907b38
Author: Eric Pugh <[email protected]>
AuthorDate: Wed Jul 22 12:35:19 2026 -0400

    Java cleanups in o.a.s.cluster.events files (#4554)
---
 .../apache/solr/cluster/events/ClusterEvent.java   |  4 +-
 .../cluster/events/ClusterEventProducerBase.java   |  4 +-
 .../events/impl/ClusterEventProducerFactory.java   |  9 ++-
 .../impl/CollectionsRepairEventListener.java       |  8 +--
 .../impl/DelegatingClusterEventProducer.java       |  2 +-
 .../solr/cluster/placement/AttributeFetcher.java   |  2 +-
 .../solr/cluster/placement/BalanceRequest.java     |  2 -
 .../solr/cluster/placement/CollectionMetrics.java  |  2 +-
 .../org/apache/solr/cluster/placement/Metric.java  |  2 +-
 .../solr/cluster/placement/PlacementContext.java   |  2 +-
 .../solr/cluster/placement/PlacementException.java |  5 --
 .../placement/PlacementModificationException.java  |  8 ---
 .../solr/cluster/placement/PlacementPlugin.java    |  2 +-
 .../solr/cluster/placement/ShardMetrics.java       |  2 +-
 .../placement/impl/AttributeFetcherImpl.java       |  5 +-
 .../cluster/placement/impl/BalanceRequestImpl.java |  5 --
 .../solr/cluster/placement/impl/MetricImpl.java    |  6 +-
 .../placement/impl/ModificationRequestImpl.java    | 30 ----------
 .../cluster/placement/impl/NodeMetricImpl.java     |  9 ---
 .../impl/PlacementPluginAssignStrategy.java        |  7 +--
 .../impl/PlacementPluginFactoryLoader.java         | 27 ++++-----
 .../impl/SimpleClusterAbstractionsImpl.java        | 69 ++++++++--------------
 .../placement/plugins/AffinityPlacementConfig.java |  5 +-
 23 files changed, 58 insertions(+), 159 deletions(-)

diff --git 
a/solr/core/src/java/org/apache/solr/cluster/events/ClusterEvent.java 
b/solr/core/src/java/org/apache/solr/cluster/events/ClusterEvent.java
index f2fb184fb07..c800ce8b6f0 100644
--- a/solr/core/src/java/org/apache/solr/cluster/events/ClusterEvent.java
+++ b/solr/core/src/java/org/apache/solr/cluster/events/ClusterEvent.java
@@ -32,8 +32,8 @@ public interface ClusterEvent {
     COLLECTIONS_REMOVED,
     /** Cluster properties have changed. */
     CLUSTER_PROPERTIES_CHANGED
-    // other types? eg. Overseer leader change, shard leader change,
-    // node overload (eg. CPU / MEM circuit breakers tripped)?
+    // other types? e.g. Overseer leader change, shard leader change,
+    // node overload (e.g. CPU / MEM circuit breakers tripped)?
   }
 
   /** Get event type. */
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/events/ClusterEventProducerBase.java
 
b/solr/core/src/java/org/apache/solr/cluster/events/ClusterEventProducerBase.java
index ee16baf41fe..376d331c07d 100644
--- 
a/solr/core/src/java/org/apache/solr/cluster/events/ClusterEventProducerBase.java
+++ 
b/solr/core/src/java/org/apache/solr/cluster/events/ClusterEventProducerBase.java
@@ -84,9 +84,7 @@ public abstract class ClusterEventProducerBase implements 
ClusterEventProducer {
   @Override
   public void close() throws IOException {
     synchronized (listeners) {
-      listeners
-          .values()
-          .forEach(listenerSet -> listenerSet.forEach(listener -> 
IOUtils.closeQuietly(listener)));
+      listeners.values().forEach(listenerSet -> 
listenerSet.forEach(IOUtils::closeQuietly));
     }
   }
 
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/events/impl/ClusterEventProducerFactory.java
 
b/solr/core/src/java/org/apache/solr/cluster/events/impl/ClusterEventProducerFactory.java
index e7401940ad7..e7f57cbcca9 100644
--- 
a/solr/core/src/java/org/apache/solr/cluster/events/impl/ClusterEventProducerFactory.java
+++ 
b/solr/core/src/java/org/apache/solr/cluster/events/impl/ClusterEventProducerFactory.java
@@ -93,13 +93,13 @@ public class ClusterEventProducerFactory extends 
ClusterEventProducerBase {
   /**
    * Create a {@link ClusterEventProducer} based on the current plugin 
configurations.
    *
-   * <p>NOTE: this method can only be called once because it has side-effects, 
such as transferring
+   * <p>NOTE: this method can only be called once because it has side effects, 
such as transferring
    * the initially collected listeners to the resulting producer's instance, 
and installing a {@link
    * org.apache.solr.api.ContainerPluginsRegistry.PluginRegistryListener}. 
Calling this method more
    * than once will result in an exception.
    *
    * @param plugins current plugin configurations
-   * @return configured instance of cluster event producer (with side-effects, 
see above)
+   * @return configured instance of cluster event producer (with side effects, 
see above)
    */
   public DelegatingClusterEventProducer create(ContainerPluginsRegistry 
plugins) {
     if (created) {
@@ -201,9 +201,8 @@ public class ClusterEventProducerFactory extends 
ClusterEventProducerBase {
       plugins.unregisterListener(initialPluginListener);
       // transfer listeners that are already registered
       listeners.forEach(
-          (type, listenersSet) -> {
-            listenersSet.forEach(listener -> target.registerListener(listener, 
type));
-          });
+          (type, listenersSet) ->
+              listenersSet.forEach(listener -> 
target.registerListener(listener, type)));
       listeners.clear();
     }
   }
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/events/impl/CollectionsRepairEventListener.java
 
b/solr/core/src/java/org/apache/solr/cluster/events/impl/CollectionsRepairEventListener.java
index 0d8c26d6c06..134e3d075e7 100644
--- 
a/solr/core/src/java/org/apache/solr/cluster/events/impl/CollectionsRepairEventListener.java
+++ 
b/solr/core/src/java/org/apache/solr/cluster/events/impl/CollectionsRepairEventListener.java
@@ -195,10 +195,7 @@ public class CollectionsRepairEventListener
                         newPositions.put(coll.getName(), positions);
                       } catch (Exception e) {
                         log.warn(
-                            "Exception computing positions for {}/{}: {}",
-                            coll.getName(),
-                            shard,
-                            e);
+                            "Exception computing positions for {}/{}", 
coll.getName(), shard, e);
                       }
                     });
               });
@@ -229,8 +226,7 @@ public class CollectionsRepairEventListener
           try {
             solrClient.request(addReplica);
           } catch (Exception e) {
-            log.warn(
-                "Exception calling ADDREPLICA {}: {}", 
addReplica.getParams().toQueryString(), e);
+            log.warn("Exception calling ADDREPLICA {}", 
addReplica.getParams().toQueryString(), e);
           }
         });
   }
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/events/impl/DelegatingClusterEventProducer.java
 
b/solr/core/src/java/org/apache/solr/cluster/events/impl/DelegatingClusterEventProducer.java
index 551b9bfd397..61fffdf5c98 100644
--- 
a/solr/core/src/java/org/apache/solr/cluster/events/impl/DelegatingClusterEventProducer.java
+++ 
b/solr/core/src/java/org/apache/solr/cluster/events/impl/DelegatingClusterEventProducer.java
@@ -96,7 +96,7 @@ public final class DelegatingClusterEventProducer extends 
ClusterEventProducerBa
           log.debug("--- started delegate {}", delegate);
         }
       } catch (Exception e) {
-        log.warn("Unable to start the new delegate {}: {}", 
delegate.getClass().getName(), e);
+        log.warn("Unable to start the new delegate {}", 
delegate.getClass().getName(), e);
       }
     } else {
       if (log.isDebugEnabled()) {
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/AttributeFetcher.java 
b/solr/core/src/java/org/apache/solr/cluster/placement/AttributeFetcher.java
index a751d4bc08d..09186a0afa6 100644
--- a/solr/core/src/java/org/apache/solr/cluster/placement/AttributeFetcher.java
+++ b/solr/core/src/java/org/apache/solr/cluster/placement/AttributeFetcher.java
@@ -65,7 +65,7 @@ public interface AttributeFetcher {
   /**
    * Fetches all requested node attributes from all nodes passed to {@link 
#fetchFrom(Set)} as well
    * as non-node attributes (those requested using e.g. {@link
-   * #requestCollectionMetrics(SolrCollection, Set)}.
+   * #requestCollectionMetrics(SolrCollection, Set)}).
    *
    * @return An instance allowing retrieval of all attributes that could be 
fetched.
    */
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/BalanceRequest.java 
b/solr/core/src/java/org/apache/solr/cluster/placement/BalanceRequest.java
index f967b7fa808..9dfb0ee56e1 100644
--- a/solr/core/src/java/org/apache/solr/cluster/placement/BalanceRequest.java
+++ b/solr/core/src/java/org/apache/solr/cluster/placement/BalanceRequest.java
@@ -43,6 +43,4 @@ public interface BalanceRequest extends ModificationRequest {
    *     the error itself rather than calling the plugin).
    */
   Set<Node> getNodes();
-
-  int getMaximumBalanceSkew();
 }
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/CollectionMetrics.java 
b/solr/core/src/java/org/apache/solr/cluster/placement/CollectionMetrics.java
index c6afc8b480d..d0a8681ccd5 100644
--- 
a/solr/core/src/java/org/apache/solr/cluster/placement/CollectionMetrics.java
+++ 
b/solr/core/src/java/org/apache/solr/cluster/placement/CollectionMetrics.java
@@ -21,7 +21,7 @@ import java.util.Iterator;
 import java.util.Optional;
 
 /**
- * Collection-level metrics. Currently this class is a container just for 
shard-level metrics but
+ * Collection-level metrics. Currently, this class is a container just for 
shard-level metrics but
  * future versions may add other primitive collection-level metrics.
  */
 public interface CollectionMetrics {
diff --git a/solr/core/src/java/org/apache/solr/cluster/placement/Metric.java 
b/solr/core/src/java/org/apache/solr/cluster/placement/Metric.java
index afa1040b96a..5ddd0d0d456 100644
--- a/solr/core/src/java/org/apache/solr/cluster/placement/Metric.java
+++ b/solr/core/src/java/org/apache/solr/cluster/placement/Metric.java
@@ -23,7 +23,7 @@ package org.apache.solr.cluster.placement;
  */
 public interface Metric<T> {
 
-  /** Return the short-hand name that identifies this attribute. */
+  /** Return the shorthand name that identifies this attribute. */
   String getName();
 
   /** Return the internal name of a Solr metric associated with this 
attribute. */
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/PlacementContext.java 
b/solr/core/src/java/org/apache/solr/cluster/placement/PlacementContext.java
index be7b0282a79..ae161610e60 100644
--- a/solr/core/src/java/org/apache/solr/cluster/placement/PlacementContext.java
+++ b/solr/core/src/java/org/apache/solr/cluster/placement/PlacementContext.java
@@ -33,7 +33,7 @@ public interface PlacementContext {
 
   /**
    * Factory used by the plugin to fetch additional attributes from the 
cluster nodes, such as count
-   * of cores, system properties etc..
+   * of cores, system properties etc.
    */
   AttributeFetcher getAttributeFetcher();
 
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/PlacementException.java 
b/solr/core/src/java/org/apache/solr/cluster/placement/PlacementException.java
index bbe49f62746..c50b667ee52 100644
--- 
a/solr/core/src/java/org/apache/solr/cluster/placement/PlacementException.java
+++ 
b/solr/core/src/java/org/apache/solr/cluster/placement/PlacementException.java
@@ -39,9 +39,4 @@ public class PlacementException extends Exception {
   public PlacementException(Throwable cause) {
     super(cause);
   }
-
-  protected PlacementException(
-      String message, Throwable cause, boolean enableSuppression, boolean 
writableStackTrace) {
-    super(message, cause, enableSuppression, writableStackTrace);
-  }
 }
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/PlacementModificationException.java
 
b/solr/core/src/java/org/apache/solr/cluster/placement/PlacementModificationException.java
index 30439188a22..cd780d83bcf 100644
--- 
a/solr/core/src/java/org/apache/solr/cluster/placement/PlacementModificationException.java
+++ 
b/solr/core/src/java/org/apache/solr/cluster/placement/PlacementModificationException.java
@@ -27,10 +27,6 @@ import java.util.Map;
 public class PlacementModificationException extends PlacementException {
   private final Map<String, String> rejectedModifications = new HashMap<>();
 
-  public PlacementModificationException() {
-    super();
-  }
-
   public PlacementModificationException(String message) {
     super(message);
   }
@@ -39,10 +35,6 @@ public class PlacementModificationException extends 
PlacementException {
     super(message, cause);
   }
 
-  public PlacementModificationException(Throwable cause) {
-    super(cause);
-  }
-
   /**
    * Add information about the modification that cause this exception.
    *
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/PlacementPlugin.java 
b/solr/core/src/java/org/apache/solr/cluster/placement/PlacementPlugin.java
index d2924d344b8..6bc14205f2e 100644
--- a/solr/core/src/java/org/apache/solr/cluster/placement/PlacementPlugin.java
+++ b/solr/core/src/java/org/apache/solr/cluster/placement/PlacementPlugin.java
@@ -98,5 +98,5 @@ public interface PlacementPlugin {
    */
   default void verifyAllowedModification(
       ModificationRequest modificationRequest, PlacementContext 
placementContext)
-      throws PlacementException, InterruptedException {}
+      throws PlacementException {}
 }
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/ShardMetrics.java 
b/solr/core/src/java/org/apache/solr/cluster/placement/ShardMetrics.java
index 0ca45267ff0..3be201f1d6f 100644
--- a/solr/core/src/java/org/apache/solr/cluster/placement/ShardMetrics.java
+++ b/solr/core/src/java/org/apache/solr/cluster/placement/ShardMetrics.java
@@ -20,7 +20,7 @@ import java.util.Iterator;
 import java.util.Optional;
 
 /**
- * Shard-level metrics. Currently this is just a container for replica-level 
metrics but future
+ * Shard-level metrics. Currently, this is just a container for replica-level 
metrics but future
  * versions may add other primitive shard-level metrics.
  */
 public interface ShardMetrics {
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/impl/AttributeFetcherImpl.java
 
b/solr/core/src/java/org/apache/solr/cluster/placement/impl/AttributeFetcherImpl.java
index 2aa4203f91a..cca227000f7 100644
--- 
a/solr/core/src/java/org/apache/solr/cluster/placement/impl/AttributeFetcherImpl.java
+++ 
b/solr/core/src/java/org/apache/solr/cluster/placement/impl/AttributeFetcherImpl.java
@@ -101,7 +101,7 @@ public class AttributeFetcherImpl implements 
AttributeFetcher {
     // In order to match the returned values for the various snitches, we need 
to keep track of
     // where each received value goes. Given the target maps are of different 
types (the maps from
     // Node to whatever defined above) we instead pass a function taking two 
arguments, the node and
-    // the (non null) returned value, that will cast the value into the 
appropriate type for the
+    // the (non-null) returned value, that will cast the value into the 
appropriate type for the
     // snitch tag and insert it into the appropriate map with the node as the 
key.
     for (String sysPropSnitch : requestedNodeSystemSnitchTags) {
       systemSnitchToNodeToValue.put(sysPropSnitch, new HashMap<>());
@@ -207,11 +207,10 @@ public class AttributeFetcherImpl implements 
AttributeFetcher {
       Map<String, Map<Node, String>> systemSnitchToNodeToValue,
       Map<NodeMetric<?>, Map<Node, Object>> metricSnitchToNodeToValue) {
 
-    Set<String> allRequestedTags = new HashSet<>();
     Map<String, NodeMetric<?>> tagToMetric = new HashMap<>();
 
     // Add system property tags we need to request
-    allRequestedTags.addAll(requestedNodeSystemSnitchTags);
+    Set<String> allRequestedTags = new 
HashSet<>(requestedNodeSystemSnitchTags);
 
     // Add metric tags we need to request
     for (NodeMetric<?> metric : requestedNodeMetricSnitchTags) {
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/impl/BalanceRequestImpl.java
 
b/solr/core/src/java/org/apache/solr/cluster/placement/impl/BalanceRequestImpl.java
index 95454f9dbbe..4a2f39ba8eb 100644
--- 
a/solr/core/src/java/org/apache/solr/cluster/placement/impl/BalanceRequestImpl.java
+++ 
b/solr/core/src/java/org/apache/solr/cluster/placement/impl/BalanceRequestImpl.java
@@ -45,11 +45,6 @@ public class BalanceRequestImpl implements BalanceRequest {
     return nodes;
   }
 
-  @Override
-  public int getMaximumBalanceSkew() {
-    return maximumBalanceSkew;
-  }
-
   @Override
   public SolrCollection getCollection() {
     return solrCollection;
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/impl/MetricImpl.java 
b/solr/core/src/java/org/apache/solr/cluster/placement/impl/MetricImpl.java
index b3c5782bd13..f6a64d8eb51 100644
--- a/solr/core/src/java/org/apache/solr/cluster/placement/impl/MetricImpl.java
+++ b/solr/core/src/java/org/apache/solr/cluster/placement/impl/MetricImpl.java
@@ -68,7 +68,7 @@ public abstract class MetricImpl<T> implements Metric<T> {
   /**
    * Create a metric attribute.
    *
-   * @param name short-hand name that identifies this attribute.
+   * @param name shorthand name that identifies this attribute.
    * @param internalName internal name of a Solr metric.
    */
   public MetricImpl(String name, String internalName) {
@@ -78,7 +78,7 @@ public abstract class MetricImpl<T> implements Metric<T> {
   /**
    * Create a metric attribute.
    *
-   * @param name short-hand name that identifies this attribute.
+   * @param name shorthand name that identifies this attribute.
    * @param internalName internal name of a Solr metric.
    * @param converter optional raw value converter. If null then {@link 
#IDENTITY_CONVERTER} will be
    *     used.
@@ -90,7 +90,7 @@ public abstract class MetricImpl<T> implements Metric<T> {
   /**
    * Create a metric attribute with labels.
    *
-   * @param name short-hand name that identifies this attribute.
+   * @param name shorthand name that identifies this attribute.
    * @param internalName internal name of a Solr metric.
    * @param labelKey optional label key for Prometheus format labeled metrics.
    * @param labelValue optional label value for Prometheus format labeled 
metrics.
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/impl/ModificationRequestImpl.java
 
b/solr/core/src/java/org/apache/solr/cluster/placement/impl/ModificationRequestImpl.java
index de542fcefe3..1532fc21e64 100644
--- 
a/solr/core/src/java/org/apache/solr/cluster/placement/impl/ModificationRequestImpl.java
+++ 
b/solr/core/src/java/org/apache/solr/cluster/placement/impl/ModificationRequestImpl.java
@@ -24,9 +24,7 @@ import org.apache.solr.cluster.Shard;
 import org.apache.solr.cluster.SolrCollection;
 import org.apache.solr.cluster.placement.DeleteCollectionRequest;
 import org.apache.solr.cluster.placement.DeleteReplicasRequest;
-import org.apache.solr.cluster.placement.DeleteShardsRequest;
 import org.apache.solr.common.cloud.DocCollection;
-import org.apache.solr.common.cloud.Slice;
 
 /** Helper class to create modification request instances. */
 public class ModificationRequestImpl {
@@ -77,7 +75,6 @@ public class ModificationRequestImpl {
     SolrCollection solrCollection =
         
SimpleClusterAbstractionsImpl.SolrCollectionImpl.fromDocCollection(docCollection);
     Shard shard = solrCollection.getShard(shardName);
-    Slice slice = docCollection.getSlice(shardName);
     Set<Replica> solrReplicas = new HashSet<>();
     replicas.forEach(
         replica -> {
@@ -85,31 +82,4 @@ public class ModificationRequestImpl {
         });
     return createDeleteReplicasRequest(solrCollection, solrReplicas);
   }
-
-  public static DeleteShardsRequest createDeleteShardsRequest(
-      SolrCollection collection, Set<String> shardNames) {
-    return new DeleteShardsRequest() {
-      @Override
-      public Set<String> getShardNames() {
-        return shardNames;
-      }
-
-      @Override
-      public SolrCollection getCollection() {
-        return collection;
-      }
-
-      @Override
-      public String toString() {
-        return "DeleteShardsRequest{collection=" + collection.getName() + 
",shards=" + shardNames;
-      }
-    };
-  }
-
-  public static DeleteShardsRequest createDeleteShardsRequest(
-      DocCollection docCollection, Set<String> shardNames) {
-    SolrCollection solrCollection =
-        
SimpleClusterAbstractionsImpl.SolrCollectionImpl.fromDocCollection(docCollection);
-    return createDeleteShardsRequest(solrCollection, shardNames);
-  }
 }
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/impl/NodeMetricImpl.java 
b/solr/core/src/java/org/apache/solr/cluster/placement/impl/NodeMetricImpl.java
index 75fac2406d0..4f76896a320 100644
--- 
a/solr/core/src/java/org/apache/solr/cluster/placement/impl/NodeMetricImpl.java
+++ 
b/solr/core/src/java/org/apache/solr/cluster/placement/impl/NodeMetricImpl.java
@@ -56,15 +56,6 @@ public class NodeMetricImpl<T> extends MetricImpl<T> 
implements NodeMetric<T> {
     super(key, key, null, null, converter);
   }
 
-  public NodeMetricImpl(
-      String name,
-      String internalName,
-      String labelKey,
-      String labelValue,
-      Function<Object, T> converter) {
-    super(name, internalName, labelKey, labelValue, converter);
-  }
-
   public NodeMetricImpl(String key) {
     super(key, key);
   }
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/impl/PlacementPluginAssignStrategy.java
 
b/solr/core/src/java/org/apache/solr/cluster/placement/impl/PlacementPluginAssignStrategy.java
index f005dc24641..13e2a0b53a4 100644
--- 
a/solr/core/src/java/org/apache/solr/cluster/placement/impl/PlacementPluginAssignStrategy.java
+++ 
b/solr/core/src/java/org/apache/solr/cluster/placement/impl/PlacementPluginAssignStrategy.java
@@ -18,7 +18,6 @@
 package org.apache.solr.cluster.placement.impl;
 
 import java.io.IOException;
-import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
@@ -41,14 +40,10 @@ import org.apache.solr.common.cloud.Replica;
 import org.apache.solr.common.cloud.ReplicaPosition;
 import org.apache.solr.common.cloud.Slice;
 import org.apache.solr.common.util.CollectionUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /** This assign strategy delegates placement computation to "plugin" code. */
 public class PlacementPluginAssignStrategy implements Assign.AssignStrategy {
 
-  private static final Logger log = 
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
   private final PlacementPlugin plugin;
 
   public PlacementPluginAssignStrategy(PlacementPlugin plugin) {
@@ -127,7 +122,7 @@ public class PlacementPluginAssignStrategy implements 
Assign.AssignStrategy {
 
   private Replica findReplica(
       SolrCloudManager solrCloudManager, org.apache.solr.cluster.Replica 
replica) {
-    DocCollection collection = null;
+    DocCollection collection;
     try {
       collection =
           solrCloudManager
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/impl/PlacementPluginFactoryLoader.java
 
b/solr/core/src/java/org/apache/solr/cluster/placement/impl/PlacementPluginFactoryLoader.java
index 00ee44f67b3..cef0e1fcbe4 100644
--- 
a/solr/core/src/java/org/apache/solr/cluster/placement/impl/PlacementPluginFactoryLoader.java
+++ 
b/solr/core/src/java/org/apache/solr/cluster/placement/impl/PlacementPluginFactoryLoader.java
@@ -109,22 +109,17 @@ public class PlacementPluginFactoryLoader {
           "Default replica placement plugin set in {} to {}",
           PLACEMENTPLUGIN_DEFAULT_SYSPROP,
           defaultPluginId);
-      switch (defaultPluginId.toLowerCase(Locale.ROOT)) {
-        case "simple":
-          return new SimplePlacementFactory();
-        case "affinity":
-          return new AffinityPlacementFactory();
-        case "minimizecores":
-          return new MinimizeCoresPlacementFactory();
-        case "random":
-          return new RandomPlacementFactory();
-        default:
-          throw new SolrException(
-              SolrException.ErrorCode.SERVER_ERROR,
-              "Invalid value for system property '"
-                  + PLACEMENTPLUGIN_DEFAULT_SYSPROP
-                  + "'. Supported values are 'simple', 'random', 'affinity' 
and 'minimizecores'");
-      }
+      return switch (defaultPluginId.toLowerCase(Locale.ROOT)) {
+        case "simple" -> new SimplePlacementFactory();
+        case "affinity" -> new AffinityPlacementFactory();
+        case "minimizecores" -> new MinimizeCoresPlacementFactory();
+        case "random" -> new RandomPlacementFactory();
+        default -> throw new SolrException(
+            SolrException.ErrorCode.SERVER_ERROR,
+            "Invalid value for system property '"
+                + PLACEMENTPLUGIN_DEFAULT_SYSPROP
+                + "'. Supported values are 'simple', 'random', 'affinity' and 
'minimizecores'");
+      };
     } else {
       // TODO: Consider making the ootb default AffinityPlacementFactory, see
       // https://issues.apache.org/jira/browse/SOLR-16492
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/impl/SimpleClusterAbstractionsImpl.java
 
b/solr/core/src/java/org/apache/solr/cluster/placement/impl/SimpleClusterAbstractionsImpl.java
index d1b92ba2a4b..f8af1e41858 100644
--- 
a/solr/core/src/java/org/apache/solr/cluster/placement/impl/SimpleClusterAbstractionsImpl.java
+++ 
b/solr/core/src/java/org/apache/solr/cluster/placement/impl/SimpleClusterAbstractionsImpl.java
@@ -251,20 +251,13 @@ class SimpleClusterAbstractionsImpl {
     }
 
     private ShardState translateState(Slice.State state) {
-      switch (state) {
-        case ACTIVE:
-          return ShardState.ACTIVE;
-        case INACTIVE:
-          return ShardState.INACTIVE;
-        case CONSTRUCTION:
-          return ShardState.CONSTRUCTION;
-        case RECOVERY:
-          return ShardState.RECOVERY;
-        case RECOVERY_FAILED:
-          return ShardState.RECOVERY_FAILED;
-        default:
-          throw new RuntimeException("Unexpected " + state);
-      }
+      return switch (state) {
+        case ACTIVE -> ShardState.ACTIVE;
+        case INACTIVE -> ShardState.INACTIVE;
+        case CONSTRUCTION -> ShardState.CONSTRUCTION;
+        case RECOVERY -> ShardState.RECOVERY;
+        case RECOVERY_FAILED -> ShardState.RECOVERY_FAILED;
+      };
     }
 
     @Override
@@ -385,31 +378,20 @@ class SimpleClusterAbstractionsImpl {
     }
 
     private Replica.ReplicaType 
translateType(org.apache.solr.common.cloud.Replica.Type type) {
-      switch (type) {
-        case NRT:
-          return Replica.ReplicaType.NRT;
-        case TLOG:
-          return Replica.ReplicaType.TLOG;
-        case PULL:
-          return Replica.ReplicaType.PULL;
-        default:
-          throw new RuntimeException("Unexpected " + type);
-      }
+      return switch (type) {
+        case NRT -> ReplicaType.NRT;
+        case TLOG -> ReplicaType.TLOG;
+        case PULL -> ReplicaType.PULL;
+      };
     }
 
     private Replica.ReplicaState translateState(State state) {
-      switch (state) {
-        case ACTIVE:
-          return Replica.ReplicaState.ACTIVE;
-        case DOWN:
-          return Replica.ReplicaState.DOWN;
-        case RECOVERING:
-          return Replica.ReplicaState.RECOVERING;
-        case RECOVERY_FAILED:
-          return Replica.ReplicaState.RECOVERY_FAILED;
-        default:
-          throw new RuntimeException("Unexpected " + state);
-      }
+      return switch (state) {
+        case ACTIVE -> ReplicaState.ACTIVE;
+        case DOWN -> ReplicaState.DOWN;
+        case RECOVERING -> ReplicaState.RECOVERING;
+        case RECOVERY_FAILED -> ReplicaState.RECOVERY_FAILED;
+      };
     }
 
     @Override
@@ -449,16 +431,11 @@ class SimpleClusterAbstractionsImpl {
      * an internal SolrCloud implementation class to the plugin API.
      */
     static org.apache.solr.common.cloud.Replica.Type 
toCloudReplicaType(ReplicaType type) {
-      switch (type) {
-        case NRT:
-          return org.apache.solr.common.cloud.Replica.Type.NRT;
-        case TLOG:
-          return org.apache.solr.common.cloud.Replica.Type.TLOG;
-        case PULL:
-          return org.apache.solr.common.cloud.Replica.Type.PULL;
-        default:
-          throw new IllegalArgumentException("Unknown " + type);
-      }
+      return switch (type) {
+        case NRT -> org.apache.solr.common.cloud.Replica.Type.NRT;
+        case TLOG -> org.apache.solr.common.cloud.Replica.Type.TLOG;
+        case PULL -> org.apache.solr.common.cloud.Replica.Type.PULL;
+      };
     }
 
     @Override
diff --git 
a/solr/core/src/java/org/apache/solr/cluster/placement/plugins/AffinityPlacementConfig.java
 
b/solr/core/src/java/org/apache/solr/cluster/placement/plugins/AffinityPlacementConfig.java
index 8faa95f2e78..e73ce2c043d 100644
--- 
a/solr/core/src/java/org/apache/solr/cluster/placement/plugins/AffinityPlacementConfig.java
+++ 
b/solr/core/src/java/org/apache/solr/cluster/placement/plugins/AffinityPlacementConfig.java
@@ -135,9 +135,8 @@ public class AffinityPlacementConfig implements 
PlacementPluginConfig {
   @JsonProperty public Boolean spreadAcrossDomains = Boolean.FALSE;
 
   /**
-   * Determines the maximum number of replicas of a particular type of a 
particular shard that can
-   * be placed within a single domain (as defined by the {@link 
#SPREAD_DOMAIN_SYSPROP} System
-   * property).
+   * Determines the maximum number of replicas of the same type from any given 
shard that may share
+   * a single domain (as defined by the {@link #SPREAD_DOMAIN_SYSPROP} System 
property).
    */
   @JsonProperty public Integer maxReplicasPerShardInDomain = -1;
 

Reply via email to