You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by er...@apache.org on 2020/06/06 13:30:41 UTC

[lucene-solr] branch branch_8x updated: SOLR-14536: Fix or suppress warnings in apache/solr/common

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

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


The following commit(s) were added to refs/heads/branch_8x by this push:
     new d639aa9  SOLR-14536: Fix or suppress warnings in apache/solr/common
d639aa9 is described below

commit d639aa912fef52c8d39aa6196bf79927970bd171
Author: Erick Erickson <Er...@gmail.com>
AuthorDate: Sat Jun 6 09:27:21 2020 -0400

    SOLR-14536: Fix or suppress warnings in apache/solr/common
---
 solr/CHANGES.txt                                   |  2 ++
 .../solrj/request/CollectionAdminRequest.java      |  4 +++
 .../solr/client/solrj/request/V1toV2ApiMapper.java |  1 +
 .../org/apache/solr/common/IteratorWriter.java     |  1 +
 .../org/apache/solr/common/MapSerializable.java    |  1 +
 .../src/java/org/apache/solr/common/MapWriter.java |  1 +
 .../java/org/apache/solr/common/MapWriterMap.java  |  7 +++-
 .../org/apache/solr/common/NavigableObject.java    |  6 ++--
 .../org/apache/solr/common/SolrDocumentBase.java   |  1 +
 .../java/org/apache/solr/common/SolrException.java | 14 ++++----
 .../solr/common/cloud/ClusterProperties.java       |  4 +++
 .../apache/solr/common/cloud/SolrZooKeeper.java    |  1 +
 .../apache/solr/common/cloud/ZkStateReader.java    |  4 +++
 .../org/apache/solr/common/params/SolrParams.java  |  7 ++--
 .../common/util/ByteArrayUtf8CharSequence.java     |  6 ++--
 .../solr/common/util/FastJavaBinDecoder.java       |  3 ++
 .../org/apache/solr/common/util/JavaBinCodec.java  | 11 +++---
 .../solr/common/util/JsonSchemaValidator.java      | 27 +++++++++++----
 .../apache/solr/common/util/JsonTextWriter.java    | 19 ++++++-----
 .../org/apache/solr/common/util/NamedList.java     |  6 +++-
 .../src/java/org/apache/solr/common/util/Pair.java |  1 +
 .../org/apache/solr/common/util/TextWriter.java    |  8 ++---
 .../java/org/apache/solr/common/util/Utils.java    | 39 ++++++++++++++++++----
 .../apache/solr/common/util/ValidatingJsonMap.java | 13 ++++++--
 24 files changed, 137 insertions(+), 50 deletions(-)

diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index c975b90..8807e93 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -220,6 +220,8 @@ Other Changes
 
 * SOLR-14538: Fix or suppress remaining warnings in apache/solr/handler (Erick Erickson)
 
+* SOLR-14536: Fix or suppress warnings in apache/solr/common (Erick Erickson)
+
 ==================  8.5.2 ==================
 
 Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java b/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java
index a1b7cba..6f6ac83 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java
@@ -110,6 +110,7 @@ public abstract class CollectionAdminRequest<T extends CollectionAdminResponse>
   }
 
   @Override
+  @SuppressWarnings({"rawtypes"})
   public SolrRequest getV2Request() {
     return usev2 ?
         V1toV2ApiMapper.convert(this).useBinary(useBinaryV2).build() :
@@ -294,6 +295,7 @@ public abstract class CollectionAdminRequest<T extends CollectionAdminResponse>
     }
   }
 
+  @SuppressWarnings({"rawtypes"})
   protected abstract static class ShardSpecificAdminRequest extends CollectionAdminRequest {
 
     protected String collection;
@@ -1535,6 +1537,7 @@ public abstract class CollectionAdminRequest<T extends CollectionAdminResponse>
   public static class RequestStatusResponse extends CollectionAdminResponse {
 
     public RequestStatusState getRequestStatus() {
+      @SuppressWarnings({"rawtypes"})
       NamedList innerResponse = (NamedList) getResponse().get("status");
       return RequestStatusState.fromKey((String) innerResponse.get("state"));
     }
@@ -2682,6 +2685,7 @@ public abstract class CollectionAdminRequest<T extends CollectionAdminResponse>
   /**
    * Returns a SolrRequest to get a list of collections in the cluster
    */
+  @SuppressWarnings({"unchecked"})
   public static java.util.List<String> listCollections(SolrClient client) throws IOException, SolrServerException {
     CollectionAdminResponse resp = new List().process(client);
     return (java.util.List<String>) resp.getResponse().get("collections");
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/request/V1toV2ApiMapper.java b/solr/solrj/src/java/org/apache/solr/client/solrj/request/V1toV2ApiMapper.java
index 0ec1112..0cfaf20 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/request/V1toV2ApiMapper.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/request/V1toV2ApiMapper.java
@@ -84,6 +84,7 @@ public class V1toV2ApiMapper {
     public V2Request.Builder convert(SolrParams paramsV1) {
       String[] list = new String[template.variables.size()];
       MapWriter data = serializeToV2Format(paramsV1, list);
+      @SuppressWarnings({"rawtypes"})
       Map o = data.toMap(new LinkedHashMap<>());
       return new V2Request.Builder(template.apply(s -> {
         int idx = template.variables.indexOf(s);
diff --git a/solr/solrj/src/java/org/apache/solr/common/IteratorWriter.java b/solr/solrj/src/java/org/apache/solr/common/IteratorWriter.java
index ec11c78..143506d 100644
--- a/solr/solrj/src/java/org/apache/solr/common/IteratorWriter.java
+++ b/solr/solrj/src/java/org/apache/solr/common/IteratorWriter.java
@@ -74,6 +74,7 @@ public interface IteratorWriter {
       return this;
     }
   }
+  @SuppressWarnings({"unchecked", "rawtypes"})
   default List toList( List l)  {
     try {
       writeIter(new ItemWriter() {
diff --git a/solr/solrj/src/java/org/apache/solr/common/MapSerializable.java b/solr/solrj/src/java/org/apache/solr/common/MapSerializable.java
index 7fadc2e..f56f1b2 100644
--- a/solr/solrj/src/java/org/apache/solr/common/MapSerializable.java
+++ b/solr/solrj/src/java/org/apache/solr/common/MapSerializable.java
@@ -26,5 +26,6 @@ public interface MapSerializable {
    * Do not keep a reference to the passed map and reuse it.
    * it may be reused by the framework
    */
+  @SuppressWarnings({"rawtypes"})
   Map toMap(Map<String, Object> map);
 }
diff --git a/solr/solrj/src/java/org/apache/solr/common/MapWriter.java b/solr/solrj/src/java/org/apache/solr/common/MapWriter.java
index 926cf4c..7266410 100644
--- a/solr/solrj/src/java/org/apache/solr/common/MapWriter.java
+++ b/solr/solrj/src/java/org/apache/solr/common/MapWriter.java
@@ -40,6 +40,7 @@ public interface MapWriter extends MapSerializable , NavigableObject {
   }
 
   @Override
+  @SuppressWarnings({"unchecked", "rawtypes"})
   default Map toMap(Map<String, Object> map) {
     try {
       writeMap(new EntryWriter() {
diff --git a/solr/solrj/src/java/org/apache/solr/common/MapWriterMap.java b/solr/solrj/src/java/org/apache/solr/common/MapWriterMap.java
index f6b978f..8b35c96 100644
--- a/solr/solrj/src/java/org/apache/solr/common/MapWriterMap.java
+++ b/solr/solrj/src/java/org/apache/solr/common/MapWriterMap.java
@@ -22,24 +22,28 @@ import java.util.List;
 import java.util.Map;
 
 public class MapWriterMap implements MapWriter {
+  @SuppressWarnings({"rawtypes"})
   private final Map delegate;
 
-  public MapWriterMap(Map delegate) {
+  public MapWriterMap(@SuppressWarnings({"rawtypes"})Map delegate) {
     this.delegate = delegate;
   }
 
   @Override
+  @SuppressWarnings({"unchecked"})
   public void writeMap(EntryWriter ew) throws IOException {
     delegate.forEach(ew.getBiConsumer());
   }
 
   @Override
+  @SuppressWarnings({"unchecked"})
   public Object _get(String path, Object def) {
     if (path.indexOf('/') == -1) return delegate.getOrDefault(path, def);
     return MapWriter.super._get(path, def);
   }
 
   @Override
+  @SuppressWarnings({"unchecked"})
   public Object _get(List<String> path, Object def) {
     if (path.size() == 1) return delegate.getOrDefault(path.get(0), def);
     return MapWriter.super._get(path, def);
@@ -47,6 +51,7 @@ public class MapWriterMap implements MapWriter {
 
 
   @Override
+  @SuppressWarnings({"rawtypes"})
   public Map toMap(Map<String, Object> map) {
     return delegate;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/common/NavigableObject.java b/solr/solrj/src/java/org/apache/solr/common/NavigableObject.java
index ccef7e2..22dca2b 100644
--- a/solr/solrj/src/java/org/apache/solr/common/NavigableObject.java
+++ b/solr/solrj/src/java/org/apache/solr/common/NavigableObject.java
@@ -53,20 +53,20 @@ public interface NavigableObject {
   /**Iterate through the entries of a navigable Object at a certain path
    * @param path the json path
    */
-  default void _forEachEntry(String path, BiConsumer fun) {
+  default void _forEachEntry(String path, @SuppressWarnings({"rawtypes"})BiConsumer fun) {
     Utils.forEachMapEntry(this, path, fun);
   }
 
   /**Iterate through the entries of a navigable Object at a certain path
    * @param path the json path
    */
-  default void _forEachEntry(List<String> path, BiConsumer fun) {
+  default void _forEachEntry(List<String> path, @SuppressWarnings({"rawtypes"})BiConsumer fun) {
     Utils.forEachMapEntry(this, path, fun);
   }
 
   /**Iterate through each entry in this object
    */
-  default void _forEachEntry(BiConsumer fun) {
+  default void _forEachEntry(@SuppressWarnings({"rawtypes"})BiConsumer fun) {
     Utils.forEachMapEntry(this, fun);
   }
 
diff --git a/solr/solrj/src/java/org/apache/solr/common/SolrDocumentBase.java b/solr/solrj/src/java/org/apache/solr/common/SolrDocumentBase.java
index 21d79a9..d309719 100644
--- a/solr/solrj/src/java/org/apache/solr/common/SolrDocumentBase.java
+++ b/solr/solrj/src/java/org/apache/solr/common/SolrDocumentBase.java
@@ -48,6 +48,7 @@ public abstract class SolrDocumentBase<T, K> implements Map<String, T>, Serializ
   /**
    * Get a collection of values for a given field name
    */
+  @SuppressWarnings({"rawtypes"})
   public abstract Collection getFieldValues(String name);
 
   public abstract void addChildDocument(K child);
diff --git a/solr/solrj/src/java/org/apache/solr/common/SolrException.java b/solr/solrj/src/java/org/apache/solr/common/SolrException.java
index 673bae7..9909c2b 100644
--- a/solr/solrj/src/java/org/apache/solr/common/SolrException.java
+++ b/solr/solrj/src/java/org/apache/solr/common/SolrException.java
@@ -33,7 +33,7 @@ public class SolrException extends RuntimeException {
 
   public static final String ROOT_ERROR_CLASS = "root-error-class";
   public static final String ERROR_CLASS = "error-class";
-  final private Map mdcContext;
+  final private Map<String, String> mdcContext;
 
   /**
    * This list of valid HTTP Status error codes that Solr may return in 
@@ -160,13 +160,12 @@ public class SolrException extends RuntimeException {
   }
   
   public static void log(Logger log, String msg) {
-    String stackTrace = msg;
-    String ignore = doIgnore(null, stackTrace);
+    String ignore = doIgnore(null, msg);
     if (ignore != null) {
       log.info(ignore);
       return;
     }
-    log.error(stackTrace);
+    log.error(msg);
   }
 
   // public String toString() { return toStr(this); }  // oops, inf loop
@@ -225,8 +224,9 @@ public class SolrException extends RuntimeException {
     return t;
   }
 
+  @SuppressWarnings({"unchecked"})
   public void logInfoWithMdc(Logger logger, String msg) {
-    Map previousMdcContext = MDC.getCopyOfContextMap();
+    Map<String, String> previousMdcContext = MDC.getCopyOfContextMap();
     MDC.setContextMap(mdcContext);
     try {
       logger.info(msg);
@@ -236,7 +236,7 @@ public class SolrException extends RuntimeException {
   }
 
   public void logDebugWithMdc(Logger logger, String msg) {
-    Map previousMdcContext = MDC.getCopyOfContextMap();
+    Map<String, String> previousMdcContext = MDC.getCopyOfContextMap();
     MDC.setContextMap(mdcContext);
     try {
       logger.debug(msg);
@@ -246,7 +246,7 @@ public class SolrException extends RuntimeException {
   }
 
   public void logWarnWithMdc(Logger logger, String msg) {
-    Map previousMdcContext = MDC.getCopyOfContextMap();
+    Map<String, String> previousMdcContext = MDC.getCopyOfContextMap();
     MDC.setContextMap(mdcContext);
     try {
       logger.warn(msg);
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterProperties.java b/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterProperties.java
index 96e5371..2f0779c 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterProperties.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterProperties.java
@@ -108,6 +108,7 @@ public class ClusterProperties {
   public void setClusterProperties(Map<String, Object> properties) throws IOException, KeeperException, InterruptedException {
     client.atomicUpdate(ZkStateReader.CLUSTER_PROPS, zkData -> {
       if (zkData == null) return Utils.toJSON(convertCollectionDefaultsToNestedFormat(properties));
+      @SuppressWarnings({"unchecked"})
       Map<String, Object> zkJson = (Map<String, Object>) Utils.fromJSON(zkData);
       zkJson = convertCollectionDefaultsToNestedFormat(zkJson);
       boolean modified = Utils.mergeJson(zkJson, convertCollectionDefaultsToNestedFormat(properties));
@@ -122,6 +123,7 @@ public class ClusterProperties {
    * @param properties the properties to be converted
    * @return the converted map
    */
+  @SuppressWarnings({"unchecked"})
   static Map<String, Object> convertCollectionDefaultsToNestedFormat(Map<String, Object> properties) {
     if (properties.containsKey(COLLECTION_DEF)) {
       Map<String, Object> values = (Map<String, Object>) properties.remove(COLLECTION_DEF);
@@ -161,6 +163,7 @@ public class ClusterProperties {
       Stat s = new Stat();
       try {
         if (client.exists(ZkStateReader.CLUSTER_PROPS, true)) {
+          @SuppressWarnings({"rawtypes"})
           Map properties = (Map) Utils.fromJSON(client.getData(ZkStateReader.CLUSTER_PROPS, null, s, true));
           if (propertyValue == null) {
             //Don't update ZK unless absolutely necessary.
@@ -176,6 +179,7 @@ public class ClusterProperties {
             }
           }
         } else {
+          @SuppressWarnings({"rawtypes"})
           Map properties = new LinkedHashMap();
           properties.put(propertyName, propertyValue);
           client.create(ZkStateReader.CLUSTER_PROPS, Utils.toJSON(properties), CreateMode.PERSISTENT, true);
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZooKeeper.java b/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZooKeeper.java
index a60a275..62288c8 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZooKeeper.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZooKeeper.java
@@ -32,6 +32,7 @@ import org.apache.zookeeper.Watcher;
 import org.apache.zookeeper.ZooKeeper;
 
 // we use this class to expose nasty stuff for tests
+@SuppressWarnings({"try"})
 public class SolrZooKeeper extends ZooKeeper {
   final Set<Thread> spawnedThreads = new CopyOnWriteArraySet<>();
   
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java b/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java
index 1c8d36a..7da9ccf 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java
@@ -245,6 +245,7 @@ public class ZkStateReader implements SolrCloseable {
    * @return current configuration from <code>autoscaling.json</code>. NOTE:
    * this data is retrieved from ZK on each call.
    */
+  @SuppressWarnings({"unchecked"})
   public AutoScalingConfig getAutoScalingConfig(Watcher watcher) throws KeeperException, InterruptedException {
     Stat stat = new Stat();
 
@@ -489,6 +490,7 @@ public class ZkStateReader implements SolrCloseable {
     return collection.getZNodeVersion();
   }
 
+  @SuppressWarnings({"unchecked"})
   public synchronized void createClusterStateWatchersAndUpdate() throws KeeperException,
       InterruptedException {
     // We need to fetch the current cluster state and the set of live nodes
@@ -1087,6 +1089,7 @@ public class ZkStateReader implements SolrCloseable {
    * @param defaultValue a default value to use if no such property exists
    * @return the cluster property, or a default if the property is not set
    */
+  @SuppressWarnings({"unchecked"})
   public <T> T getClusterProperty(List<String> keyPath, T defaultValue) {
     T value = (T) Utils.getObjectByPath(clusterProperties, false, keyPath);
     if (value == null)
@@ -1258,6 +1261,7 @@ public class ZkStateReader implements SolrCloseable {
    * Returns the content of /security.json from ZooKeeper as a Map
    * If the files doesn't exist, it returns null.
    */
+  @SuppressWarnings({"unchecked"})
   public ConfigData getSecurityProps(boolean getFresh) {
     if (!getFresh) {
       if (securityData == null) return new ConfigData(EMPTY_MAP, -1);
diff --git a/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java b/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java
index 08022b2..c729534 100644
--- a/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java
+++ b/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java
@@ -458,7 +458,7 @@ public abstract class SolrParams implements Serializable, MapWriter, Iterable<Ma
 
   /** Create a Map&lt;String,String&gt; from a NamedList given no keys are repeated */
   @Deprecated // Doesn't belong here (no SolrParams).  Just remove.
-  public static Map<String,String> toMap(NamedList params) {
+  public static Map<String,String> toMap(@SuppressWarnings({"rawtypes"})NamedList params) {
     HashMap<String,String> map = new HashMap<>();
     for (int i=0; i<params.size(); i++) {
       map.put(params.getName(i), params.getVal(i).toString());
@@ -468,7 +468,7 @@ public abstract class SolrParams implements Serializable, MapWriter, Iterable<Ma
 
   /** Create a Map&lt;String,String[]&gt; from a NamedList */
   @Deprecated // Doesn't belong here (no SolrParams).  Just remove.
-  public static Map<String,String[]> toMultiMap(NamedList params) {
+  public static Map<String,String[]> toMultiMap(@SuppressWarnings({"rawtypes"})NamedList params) {
     HashMap<String,String[]> map = new HashMap<>();
     for (int i=0; i<params.size(); i++) {
       String name = params.getName(i);
@@ -476,6 +476,7 @@ public abstract class SolrParams implements Serializable, MapWriter, Iterable<Ma
       if (val instanceof String[]) {
         MultiMapSolrParams.addParam(name, (String[]) val, map);
       } else if (val instanceof List) {
+        @SuppressWarnings({"rawtypes"})
         List l = (List) val;
         String[] s = new String[l.size()];
         for (int j = 0; j < l.size(); j++) {
@@ -494,7 +495,7 @@ public abstract class SolrParams implements Serializable, MapWriter, Iterable<Ma
    * @deprecated Use {@link NamedList#toSolrParams()}.
    */
   @Deprecated //move to NamedList to allow easier flow
-  public static SolrParams toSolrParams(NamedList params) {
+  public static SolrParams toSolrParams(@SuppressWarnings({"rawtypes"})NamedList params) {
     return params.toSolrParams();
   }
 
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/ByteArrayUtf8CharSequence.java b/solr/solrj/src/java/org/apache/solr/common/util/ByteArrayUtf8CharSequence.java
index 7a4abe2..0a65b0d 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/ByteArrayUtf8CharSequence.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/ByteArrayUtf8CharSequence.java
@@ -180,6 +180,7 @@ public class ByteArrayUtf8CharSequence implements Utf8CharSequence {
     return new ByteArrayUtf8CharSequence(bytes, 0, length, utf16, hashCode);
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public static Map.Entry convertCharSeq(Map.Entry e) {
     if (e.getKey() instanceof Utf8CharSequence || e.getValue() instanceof Utf8CharSequence) {
       return new AbstractMap.SimpleEntry(convertCharSeq(e.getKey()), convertCharSeq(e.getValue()));
@@ -188,6 +189,7 @@ public class ByteArrayUtf8CharSequence implements Utf8CharSequence {
 
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public static Collection convertCharSeq(Collection vals) {
     if (vals == null) return vals;
     boolean needsCopy = false;
@@ -200,9 +202,9 @@ public class ByteArrayUtf8CharSequence implements Utf8CharSequence {
     if (needsCopy) {
       Collection copy =  null;
       if (vals instanceof Set){
-        copy = new HashSet(vals.size());
+        copy = new HashSet<>(vals.size());
       } else {
-        copy = new ArrayList(vals.size());
+        copy = new ArrayList<>(vals.size());
       }
       for (Object o : vals) copy.add(convertCharSeq(o));
       return copy;
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/FastJavaBinDecoder.java b/solr/solrj/src/java/org/apache/solr/common/util/FastJavaBinDecoder.java
index 76b7b4f..6f839d5 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/FastJavaBinDecoder.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/FastJavaBinDecoder.java
@@ -472,9 +472,11 @@ public class FastJavaBinDecoder implements DataEntry.FastDecoder {
       }
 
       @Override
+      @SuppressWarnings({"unchecked"})
       public Object readObject(StreamCodec codec, EntryImpl entry) throws IOException {
         SolrDocumentList solrDocs = new SolrDocumentList();
         if(entry.metadata != null){
+          @SuppressWarnings({"rawtypes"})
           List list = (List) entry.metadata;
           solrDocs.setNumFound((Long) list.get(0));
           solrDocs.setStart((Long) list.get(1));
@@ -788,6 +790,7 @@ public class FastJavaBinDecoder implements DataEntry.FastDecoder {
   }
 
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   private static void addObj(DataEntry e) {
     if (e.type().isContainer) {
       Object ctx = e.type() == DataEntry.Type.KEYVAL_ITER ?
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java b/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java
index 24613b8..3af1556 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java
@@ -351,6 +351,7 @@ public class JavaBinCodec implements PushWriter {
     throw new RuntimeException("Unknown type " + tagByte);
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public boolean writeKnownType(Object val) throws IOException {
     if (writePrimitive(val)) return true;
     if (val instanceof NamedList) {
@@ -752,7 +753,7 @@ public class JavaBinCodec implements PushWriter {
     val.writeIter(itemWriter);
     writeTag(END);
   }
-  public void writeIterator(Iterator iter) throws IOException {
+  public void writeIterator(@SuppressWarnings({"rawtypes"})Iterator iter) throws IOException {
     writeTag(ITERATOR);
     while (iter.hasNext()) {
       writeVal(iter.next());
@@ -770,14 +771,14 @@ public class JavaBinCodec implements PushWriter {
     return l;
   }
 
-  public void writeArray(List l) throws IOException {
+  public void writeArray(@SuppressWarnings({"rawtypes"})List l) throws IOException {
     writeTag(ARR, l.size());
     for (int i = 0; i < l.size(); i++) {
       writeVal(l.get(i));
     }
   }
 
-  public void writeArray(Collection coll) throws IOException {
+  public void writeArray(@SuppressWarnings({"rawtypes"})Collection coll) throws IOException {
     writeTag(ARR, coll.size());
     for (Object o : coll) {
       writeVal(o);
@@ -793,11 +794,13 @@ public class JavaBinCodec implements PushWriter {
     }
   }
 
+  @SuppressWarnings({"unchecked"})
   public List<Object> readArray(DataInputInputStream dis) throws IOException {
     int sz = readSize(dis);
     return readArray(dis, sz);
   }
 
+  @SuppressWarnings({"rawtypes"})
   protected List readArray(DataInputInputStream dis, int sz) throws IOException {
     ArrayList<Object> l = new ArrayList<>(sz);
     for (int i = 0; i < sz; i++) {
@@ -816,7 +819,7 @@ public class JavaBinCodec implements PushWriter {
     writeStr(enumFieldValue.toString());
   }
 
-  public void writeMapEntry(Map.Entry val) throws IOException {
+  public void writeMapEntry(Map.Entry<?,?> val) throws IOException {
     writeTag(MAP_ENTRY);
     writeVal(val.getKey());
     writeVal(val.getValue());
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java b/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java
index b1fcc91..178503e 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java
@@ -34,17 +34,21 @@ import java.util.function.Function;
  * It validates most aspects of json schema but it is NOT A FULLY COMPLIANT JSON schema parser or validator.
  * This validator borrow some design's idea from https://github.com/networknt/json-schema-validator
  */
+@SuppressWarnings({"unchecked"})
 public class JsonSchemaValidator {
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   private List<Validator> validators;
   private static Set<String> KNOWN_FNAMES = new HashSet<>(Arrays.asList(
       "description","documentation","default","additionalProperties"));
 
 
+  @SuppressWarnings({"rawtypes"})
   public JsonSchemaValidator(String jsonString) {
     this((Map) Utils.fromJSONString(jsonString));
   }
 
+  @SuppressWarnings({"rawtypes"})
   public JsonSchemaValidator(Map jsonSchema) {
     this.validators = new LinkedList<>();
     for (Object fname : jsonSchema.keySet()) {
@@ -57,6 +61,7 @@ public class JsonSchemaValidator {
     }
   }
 
+  @SuppressWarnings({"rawtypes"})
   static final Map<String, Function<Pair<Map,Object>, Validator>> VALIDATORS = new HashMap<>();
 
   static {
@@ -74,6 +79,7 @@ public class JsonSchemaValidator {
     return errs.isEmpty() ? null : errs;
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   boolean validate(Object data, List<String> errs) {
     if (data == null) return true;
     for (Validator validator : validators) {
@@ -88,7 +94,7 @@ public class JsonSchemaValidator {
 
 abstract class Validator<T> {
   @SuppressWarnings("unused")
-  Validator(Map schema, T properties) {};
+  Validator(@SuppressWarnings({"rawtypes"})Map schema, T properties) {};
   abstract boolean validate(Object o, List<String> errs);
 }
 
@@ -127,9 +133,10 @@ enum Type {
   NULL(null),
   UNKNOWN(Object.class);
 
+  @SuppressWarnings({"rawtypes"})
   Class type;
 
-  Type(Class type) {
+  Type(@SuppressWarnings({"rawtypes"})Class type) {
     this.type = type;
   }
 
@@ -142,7 +149,7 @@ enum Type {
 class TypeValidator extends Validator<Object> {
   private Set<Type> types;
 
-  TypeValidator(Map schema, Object type) {
+  TypeValidator(@SuppressWarnings({"rawtypes"})Map schema, Object type) {
     super(schema, type);
     types = new HashSet<>(1);
     if (type instanceof List) {
@@ -172,9 +179,10 @@ class TypeValidator extends Validator<Object> {
   }
 }
 
+@SuppressWarnings({"rawtypes"})
 class ItemsValidator extends Validator<Map> {
   private JsonSchemaValidator validator;
-  ItemsValidator(Map schema, Map properties) {
+  ItemsValidator(@SuppressWarnings({"rawtypes"})Map schema, @SuppressWarnings({"rawtypes"})Map properties) {
     super(schema, properties);
     validator = new JsonSchemaValidator(properties);
   }
@@ -198,7 +206,7 @@ class EnumValidator extends Validator<List<String>> {
 
   private Set<String> enumVals;
 
-  EnumValidator(Map schema, List<String> properties) {
+  EnumValidator(@SuppressWarnings({"rawtypes"})Map schema, List<String> properties) {
     super(schema, properties);
     enumVals = new HashSet<>(properties);
 
@@ -221,7 +229,7 @@ class RequiredValidator extends Validator<List<String>> {
 
   private Set<String> requiredProps;
 
-  RequiredValidator(Map schema, List<String> requiredProps) {
+  RequiredValidator(@SuppressWarnings({"rawtypes"})Map schema, List<String> requiredProps) {
     super(schema, requiredProps);
     this.requiredProps = new HashSet<>(requiredProps);
   }
@@ -233,6 +241,7 @@ class RequiredValidator extends Validator<List<String>> {
 
   boolean validate( Object o, List<String> errs, Set<String> requiredProps) {
     if (o instanceof Map) {
+      @SuppressWarnings({"rawtypes"})
       Set fnames = ((Map) o).keySet();
       for (String requiredProp : requiredProps) {
         if (requiredProp.contains(".")) {
@@ -257,10 +266,12 @@ class RequiredValidator extends Validator<List<String>> {
   }
 }
 
+@SuppressWarnings({"rawtypes"})
 class PropertiesValidator extends Validator<Map<String, Map>> {
   private Map<String, JsonSchemaValidator> jsonSchemas;
   private boolean additionalProperties;
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   PropertiesValidator(Map schema, Map<String, Map> properties) {
     super(schema, properties);
     jsonSchemas = new HashMap<>();
@@ -273,6 +284,7 @@ class PropertiesValidator extends Validator<Map<String, Map>> {
   @Override
   boolean validate(Object o, List<String> errs) {
     if (o instanceof Map) {
+      @SuppressWarnings({"rawtypes"})
       Map map = (Map) o;
       for (Object key : map.keySet()) {
         JsonSchemaValidator jsonSchema = jsonSchemas.get(key.toString());
@@ -294,7 +306,7 @@ class OneOfValidator extends Validator<List<String>> {
 
   private Set<String> oneOfProps;
 
-  OneOfValidator(Map schema, List<String> oneOfProps) {
+  OneOfValidator(@SuppressWarnings({"rawtypes"})Map schema, List<String> oneOfProps) {
     super(schema, oneOfProps);
     this.oneOfProps = new HashSet<>(oneOfProps);
   }
@@ -302,6 +314,7 @@ class OneOfValidator extends Validator<List<String>> {
   @Override
   boolean validate(Object o, List<String> errs) {
     if (o instanceof Map) {
+      @SuppressWarnings({"rawtypes"})
       Map map = (Map) o;
       for (Object key : map.keySet()) {
         if (oneOfProps.contains(key.toString())) return true;
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/JsonTextWriter.java b/solr/solrj/src/java/org/apache/solr/common/util/JsonTextWriter.java
index ed8c797..ec472ad 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/JsonTextWriter.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/JsonTextWriter.java
@@ -186,7 +186,7 @@ public interface JsonTextWriter extends TextWriter {
     _writeChar(':');
   }
 
-  default void writeJsonIter(Iterator val) throws IOException {
+  default void writeJsonIter(@SuppressWarnings({"rawtypes"})Iterator val) throws IOException {
     incLevel();
     boolean first = true;
     while (val.hasNext()) {
@@ -233,6 +233,7 @@ public interface JsonTextWriter extends TextWriter {
   }
 
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   default void writeMap(String name, Map val, boolean excludeOuter, boolean isFirstVal) throws IOException {
     if (!excludeOuter) {
       writeMapOpener(val.size());
@@ -265,13 +266,13 @@ public interface JsonTextWriter extends TextWriter {
   }
 
 
-  default void writeArray(String name, List l) throws IOException {
+  default void writeArray(String name, @SuppressWarnings({"rawtypes"})List l) throws IOException {
     writeArrayOpener(l.size());
     writeJsonIter(l.iterator());
     writeArrayCloser();
   }
 
-  default void writeArray(String name, Iterator val) throws IOException {
+  default void writeArray(String name, @SuppressWarnings({"rawtypes"})Iterator val) throws IOException {
     writeArrayOpener(-1); // no trivial way to determine array size
     writeJsonIter(val);
     writeArrayCloser();
@@ -286,7 +287,7 @@ public interface JsonTextWriter extends TextWriter {
     out.append(hexdigits[(ch) & 0xf]);
   }
 
-  default void writeNamedList(String name, NamedList val) throws IOException {
+  default void writeNamedList(String name, @SuppressWarnings({"rawtypes"})NamedList val) throws IOException {
     String namedListStyle = getNamedListStyle();
     if (val instanceof SimpleOrderedMap) {
       writeNamedListAsMapWithDups(name, val);
@@ -309,7 +310,7 @@ public interface JsonTextWriter extends TextWriter {
    * Map null to "" and name mangle any repeated keys to avoid repeats in the
    * output.
    */
-  default void writeNamedListAsMapMangled(String name, NamedList val) throws IOException {
+  default void writeNamedListAsMapMangled(String name, @SuppressWarnings({"rawtypes"})NamedList val) throws IOException {
     int sz = val.size();
     writeMapOpener(sz);
     incLevel();
@@ -369,7 +370,7 @@ public interface JsonTextWriter extends TextWriter {
    * null key is mapped to "".
    */
   // NamedList("a"=1,"bar"="foo",null=3,null=null) => {"a":1,"bar":"foo","":3,"":null}
-  default void writeNamedListAsMapWithDups(String name, NamedList val) throws IOException {
+  default void writeNamedListAsMapWithDups(String name, @SuppressWarnings({"rawtypes"})NamedList val) throws IOException {
     int sz = val.size();
     writeMapOpener(sz);
     incLevel();
@@ -392,7 +393,7 @@ public interface JsonTextWriter extends TextWriter {
 
   // Represents a NamedList directly as an array of JSON objects...
   // NamedList("a"=1,"b"=2,null=3,null=null) => [{"a":1},{"b":2},3,null]
-  default void writeNamedListAsArrMap(String name, NamedList val) throws IOException {
+  default void writeNamedListAsArrMap(String name, @SuppressWarnings({"rawtypes"})NamedList val) throws IOException {
     int sz = val.size();
     indent();
     writeArrayOpener(sz);
@@ -427,7 +428,7 @@ public interface JsonTextWriter extends TextWriter {
 
   // Represents a NamedList directly as an array of JSON objects...
   // NamedList("a"=1,"b"=2,null=3,null=null) => [["a",1],["b",2],[null,3],[null,null]]
-  default void writeNamedListAsArrArr(String name, NamedList val) throws IOException {
+  default void writeNamedListAsArrArr(String name, @SuppressWarnings({"rawtypes"})NamedList val) throws IOException {
     int sz = val.size();
     indent();
     writeArrayOpener(sz);
@@ -471,7 +472,7 @@ public interface JsonTextWriter extends TextWriter {
   // Represents a NamedList directly as an array with keys/values
   // interleaved.
   // NamedList("a"=1,"b"=2,null=3,null=null) => ["a",1,"b",2,null,3,null,null]
-  default void writeNamedListAsFlat(String name, NamedList val) throws IOException {
+  default void writeNamedListAsFlat(String name, @SuppressWarnings({"rawtypes"})NamedList val) throws IOException {
     int sz = val.size();
     writeArrayOpener(sz * 2);
     incLevel();
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/NamedList.java b/solr/solrj/src/java/org/apache/solr/common/util/NamedList.java
index 6e2dca8..3c3d457 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/NamedList.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/NamedList.java
@@ -62,6 +62,7 @@ import org.apache.solr.common.params.SolrParams;
  * </p>
  *
  */
+@SuppressWarnings({"unchecked", "rawtypes"})
 public class NamedList<T> implements Cloneable, Serializable, Iterable<Map.Entry<String,T>> , MapWriter {
 
   private static final long serialVersionUID = 1957981902839867821L;
@@ -467,9 +468,11 @@ public class NamedList<T> implements Cloneable, Serializable, Iterable<Map.Entry
       }
 
       @Override
+      @SuppressWarnings({"unchecked"})
       public void putAll(Map m) {
         boolean isEmpty = isEmpty();
         for (Object o : m.entrySet()) {
+          @SuppressWarnings({"rawtypes"})
           Map.Entry e = (Entry) o;
           if (isEmpty) {// we know that there are no duplicates
             add((String) e.getKey(), (T) e.getValue());
@@ -485,12 +488,14 @@ public class NamedList<T> implements Cloneable, Serializable, Iterable<Map.Entry
       }
 
       @Override
+      @SuppressWarnings({"unchecked"})
       public Set<String> keySet() {
         //TODO implement more efficiently
         return  NamedList.this.asMap(1).keySet();
       }
 
       @Override
+      @SuppressWarnings({"unchecked", "rawtypes"})
       public Collection values() {
         //TODO implement more efficiently
         return  NamedList.this.asMap(1).values();
@@ -795,7 +800,6 @@ public class NamedList<T> implements Cloneable, Serializable, Iterable<Map.Entry
    *           If values are found for the input key that are not strings or
    *           arrays of strings.
    */
-  @SuppressWarnings("rawtypes")
   public Collection<String> removeConfigArgs(final String name)
       throws SolrException {
     List<T> objects = getAll(name);
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/Pair.java b/solr/solrj/src/java/org/apache/solr/common/util/Pair.java
index 74f5b2d..05b09e8 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/Pair.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/Pair.java
@@ -66,6 +66,7 @@ public class Pair<T1, T2> implements Serializable, MapWriter {
     ew.put("second", second);
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public static Pair parse(Map m) {
     return new Pair(m.get("first"), m.get("second"));
   }
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/TextWriter.java b/solr/solrj/src/java/org/apache/solr/common/util/TextWriter.java
index 6aa58c6..bb39756 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/TextWriter.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/TextWriter.java
@@ -93,9 +93,9 @@ public interface TextWriter extends PushWriter {
 
   void writeStr(String name, String val, boolean needsEscaping) throws IOException;
 
-  void writeMap(String name, Map val, boolean excludeOuter, boolean isFirstVal) throws IOException;
+  void writeMap(String name, @SuppressWarnings({"rawtypes"})Map val, boolean excludeOuter, boolean isFirstVal) throws IOException;
 
-  void writeArray(String name, Iterator val) throws IOException;
+  void writeArray(String name, @SuppressWarnings({"rawtypes"})Iterator val) throws IOException;
 
   void writeNull(String name) throws IOException;
 
@@ -121,7 +121,7 @@ public interface TextWriter extends PushWriter {
   /** if this form of the method is called, val is the Solr ISO8601 based date format */
   void writeDate(String name, String val) throws IOException;
 
-  void writeNamedList(String name, NamedList val) throws IOException;
+  void writeNamedList(String name, @SuppressWarnings({"rawtypes"})NamedList val) throws IOException;
 
   Writer getWriter();
 
@@ -154,7 +154,7 @@ public interface TextWriter extends PushWriter {
     writeArray(name, Arrays.asList(val));
   }
 
-  default void writeArray(String name, List l) throws IOException {
+  default void writeArray(String name, @SuppressWarnings({"rawtypes"})List l) throws IOException {
     writeArray(name, l.iterator());
   }
 
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/Utils.java b/solr/solrj/src/java/org/apache/solr/common/util/Utils.java
index 1e6953c..e86d77e 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/Utils.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/Utils.java
@@ -90,30 +90,39 @@ import static java.util.Collections.unmodifiableSet;
 import static java.util.concurrent.TimeUnit.NANOSECONDS;
 
 public class Utils {
+  @SuppressWarnings({"rawtypes"})
   public static final Function NEW_HASHMAP_FUN = o -> new HashMap<>();
+  @SuppressWarnings({"rawtypes"})
   public static final Function NEW_LINKED_HASHMAP_FUN = o -> new LinkedHashMap<>();
+  @SuppressWarnings({"rawtypes"})
   public static final Function NEW_ATOMICLONG_FUN = o -> new AtomicLong();
+  @SuppressWarnings({"rawtypes"})
   public static final Function NEW_ARRAYLIST_FUN = o -> new ArrayList<>();
+  @SuppressWarnings({"rawtypes"})
   public static final Function NEW_SYNCHRONIZED_ARRAYLIST_FUN = o -> Collections.synchronizedList(new ArrayList<>());
+  @SuppressWarnings({"rawtypes"})
   public static final Function NEW_HASHSET_FUN = o -> new HashSet<>();
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
+  @SuppressWarnings({"rawtypes"})
   public static Map getDeepCopy(Map map, int maxDepth) {
     return getDeepCopy(map, maxDepth, true, false);
   }
 
+  @SuppressWarnings({"rawtypes"})
   public static Map getDeepCopy(Map map, int maxDepth, boolean mutable) {
     return getDeepCopy(map, maxDepth, mutable, false);
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public static Map getDeepCopy(Map map, int maxDepth, boolean mutable, boolean sorted) {
     if (map == null) return null;
     if (maxDepth < 1) return map;
     Map copy;
     if (sorted) {
-      copy = new TreeMap();
+      copy = new TreeMap<>();
     } else {
-      copy = map instanceof LinkedHashMap ? new LinkedHashMap(map.size()) : new HashMap(map.size());
+      copy = map instanceof LinkedHashMap ? new LinkedHashMap<>(map.size()) : new HashMap<>(map.size());
     }
     for (Object o : map.entrySet()) {
       Map.Entry e = (Map.Entry) o;
@@ -122,17 +131,18 @@ public class Utils {
     return mutable ? copy : Collections.unmodifiableMap(copy);
   }
 
-  public static void forEachMapEntry(Object o, String path, BiConsumer fun) {
+  public static void forEachMapEntry(Object o, String path, @SuppressWarnings({"rawtypes"})BiConsumer fun) {
     Object val = Utils.getObjectByPath(o, false, path);
     forEachMapEntry(val, fun);
   }
 
-  public static void forEachMapEntry(Object o, List<String> path, BiConsumer fun) {
+  public static void forEachMapEntry(Object o, List<String> path, @SuppressWarnings({"rawtypes"})BiConsumer fun) {
     Object val = Utils.getObjectByPath(o, false, path);
     forEachMapEntry(val, fun);
   }
 
-  public static void forEachMapEntry(Object o, BiConsumer fun) {
+  @SuppressWarnings({"unchecked"})
+  public static void forEachMapEntry(Object o, @SuppressWarnings({"rawtypes"})BiConsumer fun) {
     if (o instanceof MapWriter) {
       MapWriter m = (MapWriter) o;
       try {
@@ -151,6 +161,7 @@ public class Utils {
     }
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   private static Object makeDeepCopy(Object v, int maxDepth, boolean mutable, boolean sorted) {
     if (v instanceof MapWriter && maxDepth > 1) {
       v = ((MapWriter) v).toMap(new LinkedHashMap<>());
@@ -183,10 +194,12 @@ public class Utils {
     }
   }
 
+  @SuppressWarnings({"rawtypes"})
   public static Collection getDeepCopy(Collection c, int maxDepth, boolean mutable) {
     return getDeepCopy(c, maxDepth, mutable, false);
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public static Collection getDeepCopy(Collection c, int maxDepth, boolean mutable, boolean sorted) {
     if (c == null || maxDepth < 1) return c;
     Collection result = c instanceof Set ?
@@ -218,6 +231,7 @@ public class Utils {
     }
 
     @Override
+    @SuppressWarnings({"unchecked", "rawtypes"})
     public void handleUnknownClass(Object o) {
       if (o instanceof MapWriter) {
         Map m = ((MapWriter) o).toMap(new LinkedHashMap<>());
@@ -314,7 +328,7 @@ public class Utils {
       return new ObjectBuilder(jsonParser) {
         @Override
         public Object newObject() {
-          return new LinkedHashMapWriter();
+          return new LinkedHashMapWriter<>();
         }
       };
     } catch (IOException e) {
@@ -327,7 +341,7 @@ public class Utils {
       return new ObjectBuilder(jsonParser) {
         @Override
         public Object newObject() {
-          return new HashMap();
+          return new HashMap<>();
         }
       };
     } catch (IOException e) {
@@ -385,11 +399,13 @@ public class Utils {
     return getObjectByPath(root, onlyPrimitive, parts);
   }
 
+  @SuppressWarnings({"unchecked"})
   public static boolean setObjectByPath(Object root, String hierarchy, Object value) {
     List<String> parts = StrUtils.splitSmart(hierarchy, '/', true);
     return setObjectByPath(root, parts, value);
   }
 
+  @SuppressWarnings({"unchecked"})
   public static boolean setObjectByPath(Object root, List<String> hierarchy, Object value) {
     if (root == null) return false;
     if (!isMapLike(root)) throw new RuntimeException("must be a Map or NamedList");
@@ -408,6 +424,7 @@ public class Utils {
         Object o = getVal(obj, s, -1);
         if (o == null) return false;
         if (idx > -1) {
+          @SuppressWarnings({"rawtypes"})
           List l = (List) o;
           o = idx < l.size() ? l.get(idx) : null;
         }
@@ -416,6 +433,7 @@ public class Utils {
       } else {
         if (idx == -2) {
           if (obj instanceof NamedList) {
+            @SuppressWarnings({"rawtypes"})
             NamedList namedList = (NamedList) obj;
             int location = namedList.indexOf(s, 0);
             if (location == -1) namedList.add(s, value);
@@ -427,6 +445,7 @@ public class Utils {
         } else {
           Object v = getVal(obj, s, -1);
           if (v instanceof List) {
+            @SuppressWarnings({"rawtypes"})
             List list = (List) v;
             if (idx == -1) {
               list.add(value);
@@ -470,6 +489,7 @@ public class Utils {
           } else if (o instanceof Map) {
             o = getVal(new MapWriterMap((Map) o), null, idx);
           } else {
+            @SuppressWarnings({"rawtypes"})
             List l = (List) o;
             o = idx < l.size() ? l.get(idx) : null;
           }
@@ -483,6 +503,7 @@ public class Utils {
           if (val instanceof IteratorWriter) {
             val = getValueAt((IteratorWriter) val, idx);
           } else {
+            @SuppressWarnings({"rawtypes"})
             List l = (List) val;
             val = idx < l.size() ? l.get(idx) : null;
           }
@@ -536,6 +557,7 @@ public class Utils {
     return o instanceof Map || o instanceof NamedList || o instanceof MapWriter;
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   private static Object getVal(Object obj, String key, int idx) {
     if (obj instanceof MapWriter) {
       Object[] result = new Object[1];
@@ -596,6 +618,7 @@ public class Utils {
     }
   }
 
+  @SuppressWarnings({"unchecked"})
   public static Map<String, Object> getJson(DistribStateManager distribStateManager, String path) throws InterruptedException, IOException, KeeperException {
     VersionedData data = null;
     try {
@@ -615,6 +638,7 @@ public class Utils {
    * @param retryOnConnLoss whether to retry the operation automatically on connection loss, see {@link org.apache.solr.common.cloud.ZkCmdExecutor#retryOperation(ZkOperation)}
    * @return a Map if the node exists and contains valid JSON or an empty map if znode does not exist or has a null data
    */
+  @SuppressWarnings({"unchecked"})
   public static Map<String, Object> getJson(SolrZkClient zkClient, String path, boolean retryOnConnLoss) throws KeeperException, InterruptedException {
     try {
       byte[] bytes = zkClient.getData(path, null, null, retryOnConnLoss);
@@ -664,6 +688,7 @@ public class Utils {
    * @param input the json with new values
    * @return whether there was any change made to sink or not.
    */
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public static boolean mergeJson(Map<String, Object> sink, Map<String, Object> input) {
     boolean isModified = false;
     for (Map.Entry<String, Object> e : input.entrySet()) {
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java b/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java
index b537536..4d76d52 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java
@@ -48,6 +48,7 @@ public class ValidatingJsonMap implements Map<String, Object>, NavigableObject {
     if (o == null) return " Must not be NULL";
     return null;
   };
+  @SuppressWarnings({"rawtypes"})
   public static final PredicateWithErrMsg<Pair> ENUM_OF = pair -> {
     if (pair.second() instanceof Set) {
       Set set = (Set) pair.second();
@@ -141,7 +142,8 @@ public class ValidatingJsonMap implements Map<String, Object>, NavigableObject {
     return delegate.entrySet();
   }
 
-  public Object get(String key, PredicateWithErrMsg predicate) {
+  @SuppressWarnings({"unchecked"})
+  public Object get(String key, @SuppressWarnings({"rawtypes"})PredicateWithErrMsg predicate) {
     Object v = get(key);
     if (predicate != null) {
       String msg = predicate.test(v);
@@ -178,11 +180,12 @@ public class ValidatingJsonMap implements Map<String, Object>, NavigableObject {
     return getMap(key, null, null);
   }
 
-  public ValidatingJsonMap getMap(String key, PredicateWithErrMsg predicate) {
+  public ValidatingJsonMap getMap(String key, @SuppressWarnings({"rawtypes"})PredicateWithErrMsg predicate) {
     return getMap(key, predicate, null);
 
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public ValidatingJsonMap getMap(String key, PredicateWithErrMsg predicate, String message) {
     Object v = get(key);
     if (v != null && !(v instanceof Map)) {
@@ -199,10 +202,12 @@ public class ValidatingJsonMap implements Map<String, Object>, NavigableObject {
     return wrap((Map) v);
   }
 
+  @SuppressWarnings({"rawtypes"})
   public List getList(String key, PredicateWithErrMsg predicate) {
     return getList(key, predicate, null);
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public List getList(String key, PredicateWithErrMsg predicate, Object test) {
     Object v = get(key);
     if (v != null && !(v instanceof List)) {
@@ -219,6 +224,7 @@ public class ValidatingJsonMap implements Map<String, Object>, NavigableObject {
     return (List) v;
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public Object get(String key, PredicateWithErrMsg<Pair> predicate, Object arg) {
     Object v = get(key);
     String test = predicate.test(new Pair(v, arg));
@@ -279,6 +285,7 @@ public class ValidatingJsonMap implements Map<String, Object>, NavigableObject {
     }
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public static ValidatingJsonMap getDeepCopy(Map map, int maxDepth, boolean mutable) {
     if (map == null) return null;
     if (maxDepth < 1) return ValidatingJsonMap.wrap(map);
@@ -293,6 +300,7 @@ public class ValidatingJsonMap implements Map<String, Object>, NavigableObject {
     return mutable ? copy : new ValidatingJsonMap(Collections.unmodifiableMap(copy));
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public static Collection getDeepCopy(Collection c, int maxDepth, boolean mutable) {
     if (c == null || maxDepth < 1) return c;
     Collection result = c instanceof Set ? new HashSet() : new ArrayList();
@@ -339,6 +347,7 @@ public class ValidatingJsonMap implements Map<String, Object>, NavigableObject {
     return that instanceof Map && this.delegate.equals(that);
   }
 
+  @SuppressWarnings({"unchecked"})
   public static final ValidatingJsonMap EMPTY = new ValidatingJsonMap(Collections.EMPTY_MAP);
 
   public interface PredicateWithErrMsg<T> {