You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by so...@apache.org on 2020/06/03 19:14:11 UTC

[lucene-solr] 42/47: SOLR-14519:Fix or suppress warnings in solr/cloud/autoscaling

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

sokolov pushed a commit to branch jira/lucene-8962
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit 545dcc1801b6ccb81b6443d0a6db620978ff5ab5
Author: Erick Erickson <Er...@gmail.com>
AuthorDate: Sun May 31 15:07:06 2020 -0400

    SOLR-14519:Fix or suppress warnings in solr/cloud/autoscaling
---
 solr/CHANGES.txt                                      |  2 +-
 .../apache/solr/cloud/autoscaling/AutoScaling.java    |  2 ++
 .../solr/cloud/autoscaling/AutoScalingHandler.java    | 10 ++++++++++
 .../solr/cloud/autoscaling/ComputePlanAction.java     |  7 +++++++
 .../solr/cloud/autoscaling/ExecutePlanAction.java     |  2 ++
 .../cloud/autoscaling/InactiveShardPlanAction.java    |  1 +
 .../solr/cloud/autoscaling/IndexSizeTrigger.java      |  2 ++
 .../apache/solr/cloud/autoscaling/MetricTrigger.java  |  1 +
 .../solr/cloud/autoscaling/NodeAddedTrigger.java      |  2 ++
 .../solr/cloud/autoscaling/NodeLostTrigger.java       |  2 ++
 .../solr/cloud/autoscaling/ScheduledTriggers.java     |  3 +++
 .../solr/cloud/autoscaling/SearchRateTrigger.java     |  5 +++++
 .../solr/cloud/autoscaling/SystemLogListener.java     |  2 ++
 .../apache/solr/cloud/autoscaling/TriggerBase.java    |  3 +++
 .../apache/solr/cloud/autoscaling/TriggerEvent.java   |  4 ++++
 .../solr/cloud/autoscaling/TriggerEventQueue.java     |  2 ++
 .../apache/solr/cloud/autoscaling/TriggerUtils.java   |  1 +
 .../solr/cloud/autoscaling/sim/SimCloudManager.java   |  6 ++++++
 .../autoscaling/sim/SimClusterStateProvider.java      | 19 +++++++++++++++++++
 .../cloud/autoscaling/sim/SimDistribStateManager.java |  1 +
 .../autoscaling/sim/SimDistributedQueueFactory.java   |  1 +
 .../cloud/autoscaling/sim/SimNodeStateProvider.java   |  3 +++
 .../solr/cloud/autoscaling/sim/SimScenario.java       |  8 ++++++++
 .../apache/solr/cloud/autoscaling/sim/SimUtils.java   |  1 +
 .../cloud/autoscaling/sim/SnapshotCloudManager.java   |  3 +++
 .../autoscaling/sim/SnapshotClusterStateProvider.java |  2 ++
 .../autoscaling/sim/SnapshotDistribStateManager.java  |  2 ++
 .../autoscaling/sim/SnapshotNodeStateProvider.java    |  3 +++
 28 files changed, 99 insertions(+), 1 deletion(-)

diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 28d8552..ca3a950 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -252,7 +252,6 @@ Other Changes
 
 * SOLR-14482: Fix or suppress warnings in solr/search/facet (Erick Erickson)
 
-
 * SOLR-14485: Fix or suppress 11 resource leak warnings in apache/solr/cloud (Andras Salaman via
   Erick Erickson)
 
@@ -262,6 +261,7 @@ Other Changes
 
 * SOLR-14474: Fix remaining auxilliary class warnings in Solr (Erick Erickson)
 
+* SOLR-14519: Fix or suppress warnings in solr/cloud/autoscaling/ (Erick Erickson)
 ==================  8.5.2 ==================
 
 Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScaling.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScaling.java
index 7b2fee7..1a191ee 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScaling.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScaling.java
@@ -212,6 +212,7 @@ public class AutoScaling {
       "        ]" +
       "    }";
 
+  @SuppressWarnings({"unchecked"})
   public static final Map<String, Object> AUTO_ADD_REPLICAS_TRIGGER_PROPS = (Map) Utils.fromJSONString(AUTO_ADD_REPLICAS_TRIGGER_DSL);
 
   public static final String SCHEDULED_MAINTENANCE_TRIGGER_NAME = ".scheduled_maintenance";
@@ -239,6 +240,7 @@ public class AutoScaling {
           "        ]" +
           "    }";
 
+  @SuppressWarnings({"unchecked"})
   public static final Map<String, Object> SCHEDULED_MAINTENANCE_TRIGGER_PROPS = (Map) Utils.fromJSONString(SCHEDULED_MAINTENANCE_TRIGGER_DSL);
 
 }
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScalingHandler.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScalingHandler.java
index 1341a24..23ec075 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScalingHandler.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/AutoScalingHandler.java
@@ -120,6 +120,7 @@ public class AutoScalingHandler extends RequestHandlerBase implements Permission
   }
 
   @Override
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception {
     try {
       String httpMethod = (String) req.getContext().get("httpMethod");
@@ -187,11 +188,13 @@ public class AutoScalingHandler extends RequestHandlerBase implements Permission
   }
 
 
+  @SuppressWarnings({"unchecked"})
   private void handleSuggestions(SolrQueryResponse rsp, AutoScalingConfig autoScalingConf, SolrParams params) {
     rsp.getValues().add("suggestions",
         PolicyHelper.getSuggestions(autoScalingConf, cloudManager, params));
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public void processOps(SolrQueryRequest req, SolrQueryResponse rsp, List<CommandOperation> ops)
       throws KeeperException, InterruptedException, IOException {
     while (true) {
@@ -269,11 +272,13 @@ public class AutoScalingHandler extends RequestHandlerBase implements Permission
     return currentConfig.withProperties(configProps);
   }
 
+  @SuppressWarnings({"unchecked"})
   private void handleDiagnostics(SolrQueryResponse rsp, AutoScalingConfig autoScalingConf) {
     Policy policy = autoScalingConf.getPolicy();
     rsp.getValues().add("diagnostics", PolicyHelper.getDiagnostics(policy, cloudManager));
   }
 
+  @SuppressWarnings({"unchecked"})
   private AutoScalingConfig handleSetClusterPolicy(SolrQueryRequest req, SolrQueryResponse rsp, CommandOperation op,
                                                    AutoScalingConfig currentConfig) throws KeeperException, InterruptedException, IOException {
     List<Map<String, Object>> clusterPolicy = (List<Map<String, Object>>) op.getCommandData();
@@ -293,6 +298,7 @@ public class AutoScalingHandler extends RequestHandlerBase implements Permission
     return currentConfig;
   }
 
+  @SuppressWarnings({"unchecked"})
   private AutoScalingConfig handleSetClusterPreferences(SolrQueryRequest req, SolrQueryResponse rsp, CommandOperation op,
                                                         AutoScalingConfig currentConfig) throws KeeperException, InterruptedException, IOException {
     List<Map<String, Object>> preferences = (List<Map<String, Object>>) op.getCommandData();
@@ -336,6 +342,7 @@ public class AutoScalingHandler extends RequestHandlerBase implements Permission
     return currentConfig;
   }
 
+  @SuppressWarnings({"unchecked"})
   private AutoScalingConfig handleSetPolicies(SolrQueryRequest req, SolrQueryResponse rsp, CommandOperation op,
                                               AutoScalingConfig currentConfig) throws KeeperException, InterruptedException, IOException {
     Map<String, Object> policiesMap = op.getDataMap();
@@ -361,6 +368,7 @@ public class AutoScalingHandler extends RequestHandlerBase implements Permission
     return currentConfig;
   }
 
+  @SuppressWarnings({"unchecked"})
   private AutoScalingConfig handleResumeTrigger(SolrQueryRequest req, SolrQueryResponse rsp, CommandOperation op,
                                                 AutoScalingConfig currentConfig) throws KeeperException, InterruptedException {
     String triggerName = op.getStr(NAME);
@@ -393,6 +401,7 @@ public class AutoScalingHandler extends RequestHandlerBase implements Permission
     return currentConfig;
   }
 
+  @SuppressWarnings({"unchecked"})
   private AutoScalingConfig handleSuspendTrigger(SolrQueryRequest req, SolrQueryResponse rsp, CommandOperation op,
                                                  AutoScalingConfig currentConfig) throws KeeperException, InterruptedException {
     String triggerName = op.getStr(NAME);
@@ -525,6 +534,7 @@ public class AutoScalingHandler extends RequestHandlerBase implements Permission
     return currentConfig;
   }
 
+  @SuppressWarnings({"unchecked"})
   private AutoScalingConfig handleSetTrigger(SolrQueryRequest req, SolrQueryResponse rsp, CommandOperation op,
                                              AutoScalingConfig currentConfig) throws KeeperException, InterruptedException {
     // we're going to modify the op - use a copy
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/ComputePlanAction.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/ComputePlanAction.java
index fad45e0..33bf6b0 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/ComputePlanAction.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/ComputePlanAction.java
@@ -72,6 +72,7 @@ public class ComputePlanAction extends TriggerActionBase {
         collectionsPredicate = whiteListedCollections::contains;
       }
     } else if (value instanceof Map) {
+      @SuppressWarnings({"unchecked"})
       Map<String, String> matchConditions = (Map<String, String>) value;
       collectionsPredicate = collectionName -> {
         try {
@@ -133,6 +134,7 @@ public class ComputePlanAction extends TriggerActionBase {
           if (Thread.currentThread().isInterrupted()) {
             throw new InterruptedException("stopping - thread was interrupted");
           }
+          @SuppressWarnings({"rawtypes"})
           SolrRequest operation = suggester.getSuggestion();
           opCount++;
           // prepare suggester for the next iteration
@@ -163,6 +165,7 @@ public class ComputePlanAction extends TriggerActionBase {
           }
           Map<String, Object> props = context.getProperties();
           props.compute("operations", (k, v) -> {
+            @SuppressWarnings({"unchecked", "rawtypes"})
             List<SolrRequest> operations = (List<SolrRequest>) v;
             if (operations == null) operations = new ArrayList<>();
             operations.add(operation);
@@ -211,6 +214,7 @@ public class ComputePlanAction extends TriggerActionBase {
   }
 
   protected int getRequestedNumOps(TriggerEvent event) {
+    @SuppressWarnings({"unchecked"})
     Collection<TriggerEvent.Op> ops = (Collection<TriggerEvent.Op>) event.getProperty(TriggerEvent.REQUESTED_OPS, Collections.emptyList());
     if (ops.isEmpty()) {
       return -1;
@@ -233,6 +237,7 @@ public class ComputePlanAction extends TriggerActionBase {
       case SEARCHRATE:
       case METRIC:
       case INDEXSIZE:
+        @SuppressWarnings({"unchecked"})
         List<TriggerEvent.Op> ops = (List<TriggerEvent.Op>)event.getProperty(TriggerEvent.REQUESTED_OPS, Collections.emptyList());
         int start = (Integer)event.getProperty(START, 0);
         if (ops.isEmpty() || start >= ops.size()) {
@@ -241,6 +246,7 @@ public class ComputePlanAction extends TriggerActionBase {
         TriggerEvent.Op op = ops.get(start);
         suggester = session.getSuggester(op.getAction());
         if (suggester instanceof UnsupportedSuggester) {
+          @SuppressWarnings({"unchecked"})
           List<TriggerEvent.Op> unsupportedOps = (List<TriggerEvent.Op>)context.getProperties().computeIfAbsent(TriggerEvent.UNSUPPORTED_OPS, k -> new ArrayList<TriggerEvent.Op>());
           unsupportedOps.add(op);
         }
@@ -274,6 +280,7 @@ public class ComputePlanAction extends TriggerActionBase {
         return s;
       case DELETENODE:
         int start = (Integer)event.getProperty(START, 0);
+        @SuppressWarnings({"unchecked"})
         List<String> srcNodes = (List<String>) event.getProperty(NODE_NAMES);
         if (srcNodes.isEmpty() || start >= srcNodes.size()) {
           return NoneSuggester.get(session);
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/ExecutePlanAction.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/ExecutePlanAction.java
index e09b3ae..1dfc3b1 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/ExecutePlanAction.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/ExecutePlanAction.java
@@ -76,6 +76,7 @@ public class ExecutePlanAction extends TriggerActionBase {
   }
 
   @Override
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public void process(TriggerEvent event, ActionContext context) throws Exception {
     if (log.isDebugEnabled()) {
       log.debug("-- processing event: {} with context properties: {}", event, context.getProperties());
@@ -163,6 +164,7 @@ public class ExecutePlanAction extends TriggerActionBase {
           }
           NamedList<Object> result = response.getResponse();
           context.getProperties().compute("responses", (s, o) -> {
+            @SuppressWarnings({"unchecked"})
             List<NamedList<Object>> responses = (List<NamedList<Object>>) o;
             if (responses == null)  responses = new ArrayList<>(operations.size());
             responses.add(result);
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/InactiveShardPlanAction.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/InactiveShardPlanAction.java
index 06c69a4..d3de649 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/InactiveShardPlanAction.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/InactiveShardPlanAction.java
@@ -97,6 +97,7 @@ public class InactiveShardPlanAction extends TriggerActionBase {
             if (log.isDebugEnabled()) {
               log.debug("-- delete inactive {} / {}", coll.getName(), s.getName());
             }
+            @SuppressWarnings({"unchecked", "rawtypes"})
             List<SolrRequest> operations = (List<SolrRequest>)context.getProperties().computeIfAbsent("operations", k -> new ArrayList<>());
             operations.add(CollectionAdminRequest.deleteShard(coll.getName(), s.getName()));
             cleanup.computeIfAbsent(coll.getName(), c -> new ArrayList<>()).add(s.getName());
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/IndexSizeTrigger.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/IndexSizeTrigger.java
index 327a070..da40366 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/IndexSizeTrigger.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/IndexSizeTrigger.java
@@ -218,6 +218,7 @@ public class IndexSizeTrigger extends TriggerBase {
   }
 
   @Override
+  @SuppressWarnings({"unchecked"})
   protected void setState(Map<String, Object> state) {
     this.lastAboveEventMap.clear();
     this.lastBelowEventMap.clear();
@@ -248,6 +249,7 @@ public class IndexSizeTrigger extends TriggerBase {
   }
 
   @Override
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public void run() {
     synchronized(this) {
       if (isClosed) {
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/MetricTrigger.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/MetricTrigger.java
index 9058a9a..573ac77 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/MetricTrigger.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/MetricTrigger.java
@@ -91,6 +91,7 @@ public class MetricTrigger extends TriggerBase {
   @Override
   protected void setState(Map<String, Object> state) {
     lastNodeEvent.clear();
+    @SuppressWarnings({"unchecked"})
     Map<String, Long> nodeTimes = (Map<String, Long>) state.get("lastNodeEvent");
     if (nodeTimes != null) {
       lastNodeEvent.putAll(nodeTimes);
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/NodeAddedTrigger.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/NodeAddedTrigger.java
index 6ae77bb..42188e4 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/NodeAddedTrigger.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/NodeAddedTrigger.java
@@ -153,10 +153,12 @@ public class NodeAddedTrigger extends TriggerBase {
   protected void setState(Map<String, Object> state) {
     this.lastLiveNodes.clear();
     this.nodeNameVsTimeAdded.clear();
+    @SuppressWarnings({"unchecked"})
     Collection<String> lastLiveNodes = (Collection<String>)state.get("lastLiveNodes");
     if (lastLiveNodes != null) {
       this.lastLiveNodes.addAll(lastLiveNodes);
     }
+    @SuppressWarnings({"unchecked"})
     Map<String,Long> nodeNameVsTimeAdded = (Map<String,Long>)state.get("nodeNameVsTimeAdded");
     if (nodeNameVsTimeAdded != null) {
       this.nodeNameVsTimeAdded.putAll(nodeNameVsTimeAdded);
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/NodeLostTrigger.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/NodeLostTrigger.java
index 0a7a267..b1c5818 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/NodeLostTrigger.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/NodeLostTrigger.java
@@ -143,10 +143,12 @@ public class NodeLostTrigger extends TriggerBase {
   protected void setState(Map<String, Object> state) {
     this.lastLiveNodes.clear();
     this.nodeNameVsTimeRemoved.clear();
+    @SuppressWarnings({"unchecked"})
     Collection<String> lastLiveNodes = (Collection<String>)state.get("lastLiveNodes");
     if (lastLiveNodes != null) {
       this.lastLiveNodes.addAll(lastLiveNodes);
     }
+    @SuppressWarnings({"unchecked"})
     Map<String,Long> nodeNameVsTimeRemoved = (Map<String,Long>)state.get("nodeNameVsTimeRemoved");
     if (nodeNameVsTimeRemoved != null) {
       this.nodeNameVsTimeRemoved.putAll(nodeNameVsTimeRemoved);
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/ScheduledTriggers.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/ScheduledTriggers.java
index d84bff4..e080eec 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/ScheduledTriggers.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/ScheduledTriggers.java
@@ -320,6 +320,7 @@ public class ScheduledTriggers implements Closeable {
 
               ActionContext actionContext = new ActionContext(cloudManager, newTrigger, new HashMap<>());
               for (TriggerAction action : actions) {
+                @SuppressWarnings({"unchecked"})
                 List<String> beforeActions = (List<String>) actionContext.getProperties().computeIfAbsent(TriggerEventProcessorStage.BEFORE_ACTION.toString(), k -> new ArrayList<String>());
                 beforeActions.add(action.getName());
                 triggerListeners1.fireListeners(event.getSource(), event, TriggerEventProcessorStage.BEFORE_ACTION, action.getName(), actionContext);
@@ -329,6 +330,7 @@ public class ScheduledTriggers implements Closeable {
                   triggerListeners1.fireListeners(event.getSource(), event, TriggerEventProcessorStage.FAILED, action.getName(), actionContext, e, null);
                   throw new TriggerActionException(event.getSource(), action.getName(), "Error processing action for trigger event: " + event, e);
                 }
+                @SuppressWarnings({"unchecked"})
                 List<String> afterActions = (List<String>) actionContext.getProperties().computeIfAbsent(TriggerEventProcessorStage.AFTER_ACTION.toString(), k -> new ArrayList<String>());
                 afterActions.add(action.getName());
                 triggerListeners1.fireListeners(event.getSource(), event, TriggerEventProcessorStage.AFTER_ACTION, action.getName(), actionContext);
@@ -428,6 +430,7 @@ public class ScheduledTriggers implements Closeable {
               String path = parentPath + '/' + child;
               VersionedData data = stateManager.getData(path, null);
               if (data != null) {
+                @SuppressWarnings({"rawtypes"})
                 Map map = (Map) Utils.fromJSON(data.getData());
                 String requestid = (String) map.get("requestid");
                 try {
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/SearchRateTrigger.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/SearchRateTrigger.java
index 9539e29..efd5b24 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/SearchRateTrigger.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/SearchRateTrigger.java
@@ -280,18 +280,22 @@ public class SearchRateTrigger extends TriggerBase {
     lastNodeEvent.clear();
     lastShardEvent.clear();
     lastReplicaEvent.clear();
+    @SuppressWarnings({"unchecked"})
     Map<String, Long> collTimes = (Map<String, Long>)state.get("lastCollectionEvent");
     if (collTimes != null) {
       lastCollectionEvent.putAll(collTimes);
     }
+    @SuppressWarnings({"unchecked"})
     Map<String, Long> nodeTimes = (Map<String, Long>)state.get("lastNodeEvent");
     if (nodeTimes != null) {
       lastNodeEvent.putAll(nodeTimes);
     }
+    @SuppressWarnings({"unchecked"})
     Map<String, Long> shardTimes = (Map<String, Long>)state.get("lastShardEvent");
     if (shardTimes != null) {
       lastShardEvent.putAll(shardTimes);
     }
+    @SuppressWarnings({"unchecked"})
     Map<String, Long> replicaTimes = (Map<String, Long>)state.get("lastReplicaEvent");
     if (replicaTimes != null) {
       lastReplicaEvent.putAll(replicaTimes);
@@ -651,6 +655,7 @@ public class SearchRateTrigger extends TriggerBase {
   /**
    * This method implements a primitive form of proportional controller with a limiter.
    */
+  @SuppressWarnings({"unchecked", "rawtypes"})
   private void addReplicaHints(String collection, String shard, double r, int replicationFactor, List<Pair<String, String>> hints) {
     int numReplicas = (int)Math.round((r - aboveRate) / (double) replicationFactor);
     // in one event add at least 1 replica
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/SystemLogListener.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/SystemLogListener.java
index 09b0865..b841478 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/SystemLogListener.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/SystemLogListener.java
@@ -80,6 +80,7 @@ public class SystemLogListener extends TriggerListenerBase {
   }
 
   @Override
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public void onEvent(TriggerEvent event, TriggerEventProcessorStage stage, String actionName, ActionContext context,
                Throwable error, String message) throws Exception {
     try {
@@ -153,6 +154,7 @@ public class SystemLogListener extends TriggerListenerBase {
     });
   }
 
+  @SuppressWarnings({"rawtypes"})
   private void addOperations(SolrInputDocument doc, List<SolrRequest> operations) {
     if (operations == null || operations.isEmpty()) {
       return;
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerBase.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerBase.java
index 535fd00..d045f6a 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerBase.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerBase.java
@@ -109,6 +109,7 @@ public abstract class TriggerBase implements AutoScaling.Trigger {
     }
     this.enabled = Boolean.parseBoolean(String.valueOf(this.properties.getOrDefault("enabled", "true")));
     this.waitForSecond = ((Number) this.properties.getOrDefault("waitFor", -1L)).intValue();
+    @SuppressWarnings({"unchecked"})
     List<Map<String, Object>> o = (List<Map<String, Object>>) properties.get("actions");
     if (o != null && !o.isEmpty()) {
       actions = new ArrayList<>(3);
@@ -243,6 +244,7 @@ public abstract class TriggerBase implements AutoScaling.Trigger {
    * @see #getState
    * @lucene.internal
    */
+  @SuppressWarnings({"unchecked"})
   public Map<String,Object> deepCopyState() {
     return Utils.getDeepCopy(getState(), 10, false, true);
   }
@@ -273,6 +275,7 @@ public abstract class TriggerBase implements AutoScaling.Trigger {
   }
 
   @Override
+  @SuppressWarnings({"unchecked"})
   public void restoreState() {
     byte[] data = null;
     String path = ZkStateReader.SOLR_AUTOSCALING_TRIGGER_STATE_PATH + "/" + getName();
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerEvent.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerEvent.java
index c61556c..91482e5 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerEvent.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerEvent.java
@@ -59,6 +59,7 @@ public class TriggerEvent implements MapWriter {
       addHint(hint, hintValue);
     }
 
+    @SuppressWarnings({"unchecked"})
     public void addHint(Suggester.Hint hint, Object value) {
       hint.validator.accept(value);
       if (hint.multiValued) {
@@ -85,6 +86,7 @@ public class TriggerEvent implements MapWriter {
       ew.put("hints", hints);
     }
 
+    @SuppressWarnings({"unchecked", "rawtypes"})
     public static Op fromMap(Map<String, Object> map) {
       if (!map.containsKey("action")) {
         return null;
@@ -281,6 +283,7 @@ public class TriggerEvent implements MapWriter {
     return Utils.toJSONString(this);
   }
 
+  @SuppressWarnings({"unchecked"})
   public static TriggerEvent fromMap(Map<String, Object> map) {
     String id = (String)map.get("id");
     String source = (String)map.get("source");
@@ -294,6 +297,7 @@ public class TriggerEvent implements MapWriter {
     return res;
   }
 
+  @SuppressWarnings({"unchecked"})
   public static void fixOps(String type, Map<String, Object> properties) {
     List<Object> ops = (List<Object>)properties.get(type);
     if (ops != null && !ops.isEmpty()) {
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerEventQueue.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerEventQueue.java
index 9f2da7a..ec41495 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerEventQueue.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerEventQueue.java
@@ -72,6 +72,7 @@ public class TriggerEventQueue {
           continue;
         }
         try {
+          @SuppressWarnings({"unchecked"})
           Map<String, Object> map = (Map<String, Object>) Utils.fromJSON(data);
           return fromMap(map);
         } catch (Exception e) {
@@ -98,6 +99,7 @@ public class TriggerEventQueue {
           continue;
         }
         try {
+          @SuppressWarnings({"unchecked"})
           Map<String, Object> map = (Map<String, Object>) Utils.fromJSON(data);
           return fromMap(map);
         } catch (Exception e) {
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerUtils.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerUtils.java
index 71a1ce4..cecd933 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerUtils.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/TriggerUtils.java
@@ -61,6 +61,7 @@ public class TriggerUtils {
     }
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public static void checkProperty(Map<String, Object> properties, Map<String, String> results, String name, boolean required, Class... acceptClasses) {
     Object value = properties.get(name);
     if (value == null) {
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimCloudManager.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimCloudManager.java
index aa2d7d0..25624f4 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimCloudManager.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimCloudManager.java
@@ -216,6 +216,7 @@ public class SimCloudManager implements SolrCloudManager {
 
     solrClient = new MockSearchableSolrClient() {
       @Override
+      @SuppressWarnings({"rawtypes"})
       public NamedList<Object> request(SolrRequest request, String collection) throws SolrServerException, IOException {
         if (collection != null) {
           if (request instanceof AbstractUpdateRequest) {
@@ -625,6 +626,7 @@ public class SimCloudManager implements SolrCloudManager {
    * @return future to obtain results
    * @see #getBackgroundTaskFailureCount
    */
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public <T> Future<T> submit(Callable<T> callable) {
     return simCloudManagerPool.submit(new LoggingCallable(backgroundTaskFailureCounter, callable));
   }
@@ -714,6 +716,7 @@ public class SimCloudManager implements SolrCloudManager {
   }
 
   @Override
+  @SuppressWarnings({"rawtypes"})
   public SolrResponse request(SolrRequest req) throws IOException {
     try {
       // NOTE: we're doing 2 odd things here:
@@ -742,6 +745,8 @@ public class SimCloudManager implements SolrCloudManager {
    * @param req autoscaling request
    * @return results
    */
+
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public SolrResponse simHandleSolrRequest(SolrRequest req) throws IOException, InterruptedException {
     // pay the penalty for remote request, at least 5 ms
     timeSource.sleep(5);
@@ -867,6 +872,7 @@ public class SimCloudManager implements SolrCloudManager {
       if (log.isTraceEnabled()) {
         log.trace("Invoking Collection Action :{} with params {}", action.toLower(), params.toQueryString());
       }
+      @SuppressWarnings({"rawtypes"})
       NamedList results = new NamedList();
       rsp.setResponse(results);
       incrementCount(action.name());
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimClusterStateProvider.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimClusterStateProvider.java
index b76f9b5..7e5343d 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimClusterStateProvider.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimClusterStateProvider.java
@@ -171,6 +171,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
       this.zkVersion = zkVersion;
     }
 
+    @SuppressWarnings({"unchecked", "rawtypes"})
     public DocCollection getColl() throws InterruptedException, IOException {
       DocCollection dc = coll;
       if (dc != null) {
@@ -321,6 +322,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
    * Initialize from an existing cluster state
    * @param initialState initial cluster state
    */
+  @SuppressWarnings({"unchecked"})
   public void simSetClusterState(ClusterState initialState) throws Exception {
     lock.lockInterruptibly();
     try {
@@ -412,6 +414,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
   }
 
   private ReplicaInfo getReplicaInfo(Replica r) {
+    @SuppressWarnings({"unchecked"})
     final List<ReplicaInfo> list = nodeReplicaMap.computeIfAbsent
       (r.getNodeName(), Utils.NEW_SYNCHRONIZED_ARRAYLIST_FUN);
     synchronized (list) {
@@ -428,6 +431,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
    * Add a new node to the cluster.
    * @param nodeId unique node id
    */
+  @SuppressWarnings({"unchecked"})
   public void simAddNode(String nodeId) throws Exception {
     ensureNotClosed();
     if (liveNodes.contains(nodeId)) {
@@ -525,6 +529,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
 
   // this method needs to be called under a lock
   private void setReplicaStates(String nodeId, Replica.State state, Set<String> changedCollections) {
+    @SuppressWarnings({"unchecked"})
     List<ReplicaInfo> replicas = nodeReplicaMap.computeIfAbsent(nodeId, Utils.NEW_SYNCHRONIZED_ARRAYLIST_FUN);
     synchronized (replicas) {
       replicas.forEach(r -> {
@@ -590,6 +595,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
    * @param message replica details
    * @param results result of the operation
    */
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public void simAddReplica(ZkNodeProps message, NamedList results) throws Exception {
     if (message.getStr(CommonAdminParams.ASYNC) != null) {
       results.add(CoreAdminParams.REQUESTID, message.getStr(CommonAdminParams.ASYNC));
@@ -647,6 +653,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
    * @param replicaInfo replica info
    * @param runLeaderElection if true then run a leader election after adding the replica.
    */
+  @SuppressWarnings({"unchecked"})
   public void simAddReplica(String nodeId, ReplicaInfo replicaInfo, boolean runLeaderElection) throws Exception {
     ensureNotClosed();
     lock.lockInterruptibly();
@@ -745,6 +752,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
     
     lock.lockInterruptibly();
     try {
+      @SuppressWarnings({"unchecked"})
       final List<ReplicaInfo> replicas = nodeReplicaMap.computeIfAbsent
         (nodeId, Utils.NEW_SYNCHRONIZED_ARRAYLIST_FUN);
       synchronized (replicas) {
@@ -983,6 +991,8 @@ public class SimClusterStateProvider implements ClusterStateProvider {
    * @param props collection details
    * @param results results of the operation.
    */
+
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public void simCreateCollection(ZkNodeProps props, NamedList results) throws Exception {
     ensureNotClosed();
     if (props.getStr(CommonAdminParams.ASYNC) != null) {
@@ -1160,6 +1170,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
    * @param async async id
    * @param results results of the operation
    */
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public void simDeleteCollection(String collection, String async, NamedList results) throws Exception {
     ensureNotClosed();
     if (async != null) {
@@ -1254,6 +1265,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
    * @param message operation details
    * @param results operation results.
    */
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public void simMoveReplica(ZkNodeProps message, NamedList results) throws Exception {
     ensureNotClosed();
     if (message.getStr(CommonAdminParams.ASYNC) != null) {
@@ -1320,6 +1332,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
    * @param message operation details
    * @param results operation results
    */
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public void simCreateShard(ZkNodeProps message, NamedList results) throws Exception {
     ensureNotClosed();
     if (message.getStr(CommonAdminParams.ASYNC) != null) {
@@ -1386,6 +1399,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
    * @param message operation details
    * @param results operation results.
    */
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public void simSplitShard(ZkNodeProps message, NamedList results) throws Exception {
     ensureNotClosed();
     if (message.getStr(CommonAdminParams.ASYNC) != null) {
@@ -1583,6 +1597,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
    * @param message operation details
    * @param results operation results
    */
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public void simDeleteShard(ZkNodeProps message, NamedList results) throws Exception {
     ensureNotClosed();
     if (message.getStr(CommonAdminParams.ASYNC) != null) {
@@ -1626,6 +1641,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
     }
   }
 
+  @SuppressWarnings({"rawtypes"})
   public void createSystemCollection() throws IOException {
     try {
 
@@ -2040,6 +2056,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
    * Saves cluster properties to clusterprops.json.
    * @return current properties
    */
+  @SuppressWarnings({"unchecked"})
   private synchronized Map<String, Object> saveClusterProperties() throws Exception {
     if (lastSavedProperties != null && lastSavedProperties.equals(clusterProperties)) {
       return lastSavedProperties;
@@ -2276,6 +2293,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
     }
   }
 
+  @SuppressWarnings({"unchecked"})
   public void simSetReplicaValues(String node, Map<String, Map<String, List<ReplicaInfo>>> source, boolean overwrite) {
     List<ReplicaInfo> infos = nodeReplicaMap.get(node);
     if (infos == null) {
@@ -2307,6 +2325,7 @@ public class SimClusterStateProvider implements ClusterStateProvider {
    * @return copy of the list of replicas on that node, or empty list if none
    */
   public List<ReplicaInfo> simGetReplicaInfos(String node) {
+    @SuppressWarnings({"unchecked"})
     final List<ReplicaInfo> replicas = nodeReplicaMap.computeIfAbsent
       (node, Utils.NEW_SYNCHRONIZED_ARRAYLIST_FUN);
     // make a defensive copy to avoid ConcurrentModificationException
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimDistribStateManager.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimDistribStateManager.java
index bc845e4..ea9fa55 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimDistribStateManager.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimDistribStateManager.java
@@ -619,6 +619,7 @@ public class SimDistribStateManager implements DistribStateManager {
   }
 
   @Override
+  @SuppressWarnings({"unchecked"})
   public AutoScalingConfig getAutoScalingConfig(Watcher watcher) throws InterruptedException, IOException {
     Map<String, Object> map = new HashMap<>();
     int version = 0;
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimDistributedQueueFactory.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimDistributedQueueFactory.java
index 318f63e..fb17881 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimDistributedQueueFactory.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimDistributedQueueFactory.java
@@ -184,6 +184,7 @@ public class SimDistributedQueueFactory implements DistributedQueueFactory {
     }
 
     @Override
+    @SuppressWarnings({"unchecked", "rawtypes"})
     public void offer(byte[] data) throws Exception {
       Timer.Context time = stats.time(dir + "_offer");
       updateLock.lockInterruptibly();
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimNodeStateProvider.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimNodeStateProvider.java
index 2a8103c..17b6d28 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimNodeStateProvider.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimNodeStateProvider.java
@@ -152,6 +152,7 @@ public class SimNodeStateProvider implements NodeStateProvider {
    * @param key property name
    * @param value property value.
    */
+  @SuppressWarnings({"unchecked"})
   public void simAddNodeValue(String node, String key, Object value) throws InterruptedException {
     lock.lockInterruptibly();
     try {
@@ -341,7 +342,9 @@ public class SimNodeStateProvider implements NodeStateProvider {
     Map<String, Map<String, List<ReplicaInfo>>> res = new HashMap<>();
     // TODO: probably needs special treatment for "metrics:solr.core..." tags
     for (ReplicaInfo r : replicas) {
+      @SuppressWarnings({"unchecked"})
       Map<String, List<ReplicaInfo>> perCollection = res.computeIfAbsent(r.getCollection(), Utils.NEW_HASHMAP_FUN);
+      @SuppressWarnings({"unchecked"})
       List<ReplicaInfo> perShard = perCollection.computeIfAbsent(r.getShard(), Utils.NEW_ARRAYLIST_FUN);
       // XXX filter out some properties?
       perShard.add(r);
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimScenario.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimScenario.java
index a42ebc1..6adb812 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimScenario.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimScenario.java
@@ -130,6 +130,7 @@ public class SimScenario implements AutoCloseable {
      * {@link #execute(SimScenario)}.
      * @param scenario current scenario
      */
+    @SuppressWarnings({"unchecked"})
     public void prepareCurrentParams(SimScenario scenario) {
       Properties props = new Properties();
       scenario.context.forEach((k, v) -> {
@@ -416,6 +417,7 @@ public class SimScenario implements AutoCloseable {
    */
   public static class LoadAutoscaling extends SimOp {
     @Override
+    @SuppressWarnings({"unchecked"})
     public void execute(SimScenario scenario) throws Exception {
       Map<String, Object> map;
       boolean addDefaults = Boolean.parseBoolean(params.get("withDefaultTriggers", "true"));
@@ -540,9 +542,11 @@ public class SimScenario implements AutoCloseable {
   public static class ApplySuggestions extends SimOp {
     @Override
     public void execute(SimScenario scenario) throws Exception {
+      @SuppressWarnings({"unchecked"})
       List<Suggester.SuggestionInfo> suggestions = (List<Suggester.SuggestionInfo>) scenario.context.getOrDefault(SUGGESTIONS_CTX_PROP, Collections.emptyList());
       int unresolvedCount = 0;
       for (Suggester.SuggestionInfo suggestion : suggestions) {
+        @SuppressWarnings({"rawtypes"})
         SolrRequest operation = suggestion.getOperation();
         if (operation == null) {
           unresolvedCount++;
@@ -596,6 +600,7 @@ public class SimScenario implements AutoCloseable {
         req.setContentWriter(new RequestWriter.StringPayloadContentWriter(streamBody, "application/json"));
       }
       SolrResponse rsp = scenario.cluster.request(req);
+      @SuppressWarnings({"unchecked"})
       List<SolrResponse> responses = (List<SolrResponse>) scenario.context.computeIfAbsent(RESPONSES_CTX_PROP, Utils.NEW_ARRAYLIST_FUN);
       responses.add(rsp);
     }
@@ -705,6 +710,7 @@ public class SimScenario implements AutoCloseable {
   /**
    * Set a temporary listener to wait for a specific trigger event processing.
    */
+  @SuppressWarnings({"unchecked"})
   public static class SetEventListener extends SimOp {
     @Override
     public void execute(SimScenario scenario) throws Exception {
@@ -764,6 +770,7 @@ public class SimScenario implements AutoCloseable {
         listener.wait(waitSec);
         scenario.context.remove(TRIGGER_EVENT_PREFIX + trigger);
         if (listener.getEvent() != null) {
+          @SuppressWarnings({"unchecked"})
           Map<String, Object> ev = listener.getEvent().toMap(new LinkedHashMap<>());
           scenario.context.put(TRIGGER_EVENT_PREFIX + trigger, ev);
         }
@@ -941,6 +948,7 @@ public class SimScenario implements AutoCloseable {
    */
   public static class Dump extends SimOp {
     @Override
+    @SuppressWarnings({"unchecked"})
     public void execute(SimScenario scenario) throws Exception {
       boolean redact = Boolean.parseBoolean(params.get("redact", "false"));
       boolean withData = Boolean.parseBoolean(params.get("withData", "false"));
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimUtils.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimUtils.java
index 6e04200..03c1f5b 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimUtils.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SimUtils.java
@@ -349,6 +349,7 @@ public class SimUtils {
    * @param req request
    * @return request payload and parameters converted to V1 params
    */
+  @SuppressWarnings({"unchecked"})
   public static ModifiableSolrParams v2AdminRequestToV1Params(V2Request req) {
     Map<String, Object> reqMap = new HashMap<>();
     req.toMap(reqMap);
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotCloudManager.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotCloudManager.java
index 8ea286f..9dc0b4a 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotCloudManager.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotCloudManager.java
@@ -90,6 +90,7 @@ public class SnapshotCloudManager implements SolrCloudManager {
     SimUtils.checkConsistency(this, config);
   }
 
+  @SuppressWarnings({"unchecked"})
   public SnapshotCloudManager(Map<String, Object> snapshot) throws Exception {
     Objects.requireNonNull(snapshot);
     init(
@@ -120,6 +121,7 @@ public class SnapshotCloudManager implements SolrCloudManager {
     }
   }
 
+  @SuppressWarnings({"unchecked"})
   public static SnapshotCloudManager readSnapshot(File sourceDir) throws Exception {
     if (!sourceDir.exists()) {
       throw new Exception("Source path doesn't exist: " + sourceDir);
@@ -241,6 +243,7 @@ public class SnapshotCloudManager implements SolrCloudManager {
   }
 
   @Override
+  @SuppressWarnings({"rawtypes"})
   public SolrResponse request(SolrRequest req) throws IOException {
     throw new UnsupportedOperationException("request");
   }
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotClusterStateProvider.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotClusterStateProvider.java
index 351265d..e011b4c 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotClusterStateProvider.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotClusterStateProvider.java
@@ -51,6 +51,7 @@ public class SnapshotClusterStateProvider implements ClusterStateProvider {
     clusterProperties = new HashMap<>(other.getClusterProperties());
   }
 
+  @SuppressWarnings({"unchecked"})
   public SnapshotClusterStateProvider(Map<String, Object> snapshot) {
     Objects.requireNonNull(snapshot);
     liveNodes = Set.copyOf((Collection<String>)snapshot.getOrDefault("liveNodes", Collections.emptySet()));
@@ -93,6 +94,7 @@ public class SnapshotClusterStateProvider implements ClusterStateProvider {
       coll.write(writer);
       String json = out.toString();
       try {
+        @SuppressWarnings({"unchecked"})
         Map<String, Object> collMap = new LinkedHashMap<>((Map<String, Object>)Utils.fromJSON(json.getBytes("UTF-8")));
         collMap.put("zNodeVersion", coll.getZNodeVersion());
         collMap.put("zNode", coll.getZNode());
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotDistribStateManager.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotDistribStateManager.java
index fc6bd2d..eb3a29f 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotDistribStateManager.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotDistribStateManager.java
@@ -89,6 +89,7 @@ public class SnapshotDistribStateManager implements DistribStateManager {
    */
   public SnapshotDistribStateManager(Map<String, Object> snapshot, AutoScalingConfig config) {
     snapshot.forEach((path, value) -> {
+      @SuppressWarnings({"unchecked"})
       Map<String, Object> map = (Map<String, Object>)value;
       Number version = (Number)map.getOrDefault("version", 0);
       String owner = (String)map.get("owner");
@@ -209,6 +210,7 @@ public class SnapshotDistribStateManager implements DistribStateManager {
   }
 
   @Override
+  @SuppressWarnings({"unchecked"})
   public AutoScalingConfig getAutoScalingConfig(Watcher watcher) throws InterruptedException, IOException {
     VersionedData vd = dataMap.get(ZkStateReader.SOLR_AUTOSCALING_CONF_PATH);
     Map<String, Object> map = new HashMap<>();
diff --git a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotNodeStateProvider.java b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotNodeStateProvider.java
index 8ccf849..e8b7828 100644
--- a/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotNodeStateProvider.java
+++ b/solr/core/src/java/org/apache/solr/cloud/autoscaling/sim/SnapshotNodeStateProvider.java
@@ -48,6 +48,7 @@ public class SnapshotNodeStateProvider implements NodeStateProvider {
    * @param config optional {@link AutoScalingConfig}, which will be used to determine what node and
    *               replica tags to retrieve. If this is null then the other instance's config will be used.
    */
+  @SuppressWarnings({"unchecked"})
   public SnapshotNodeStateProvider(SolrCloudManager other, AutoScalingConfig config) throws Exception {
     if (config == null) {
       config = other.getDistribStateManager().getAutoScalingConfig();
@@ -96,6 +97,7 @@ public class SnapshotNodeStateProvider implements NodeStateProvider {
    * Populate this instance from a previously generated snapshot.
    * @param snapshot previous snapshot created using this class.
    */
+  @SuppressWarnings({"unchecked"})
   public SnapshotNodeStateProvider(Map<String, Object> snapshot) {
     Objects.requireNonNull(snapshot);
     nodeValues = (Map<String, Map<String, Object>>)snapshot.getOrDefault("nodeValues", Collections.emptyMap());
@@ -130,6 +132,7 @@ public class SnapshotNodeStateProvider implements NodeStateProvider {
    * Create a snapshot of all node and replica tag values available from the original source, per the original
    * autoscaling configuration. Note:
    */
+  @SuppressWarnings({"unchecked"})
   public Map<String, Object> getSnapshot() {
     Map<String, Object> snapshot = new LinkedHashMap<>();
     snapshot.put("nodeValues", nodeValues);