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/11 22:01:59 UTC

[lucene-solr] branch branch_8x updated: SOLR-14559: Fix or suppress warnings in solr/core/src/java/org/apache/solr/util, response, cloud, security, schema, api

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 01f6cd3  SOLR-14559: Fix or suppress warnings in solr/core/src/java/org/apache/solr/util, response, cloud, security, schema, api
01f6cd3 is described below

commit 01f6cd3a84ef6a002f0f7ae1129bd74cdc2f5c01
Author: Erick Erickson <Er...@gmail.com>
AuthorDate: Thu Jun 11 17:58:11 2020 -0400

    SOLR-14559: Fix or suppress warnings in solr/core/src/java/org/apache/solr/util, response, cloud, security, schema, api
---
 solr/CHANGES.txt                                   |  3 +
 .../src/java/org/apache/solr/api/AnnotatedApi.java |  4 ++
 solr/core/src/java/org/apache/solr/api/ApiBag.java | 12 +++-
 .../src/java/org/apache/solr/api/V2HttpCall.java   |  2 +
 .../apache/solr/cloud/CloudConfigSetService.java   |  1 +
 .../src/java/org/apache/solr/cloud/CloudUtil.java  |  1 +
 .../src/java/org/apache/solr/cloud/Overseer.java   |  9 +++
 .../cloud/OverseerConfigSetMessageHandler.java     | 16 ++++-
 .../apache/solr/cloud/OverseerNodePrioritizer.java |  2 +
 .../apache/solr/cloud/OverseerSolrResponse.java    |  4 +-
 .../apache/solr/cloud/OverseerTaskProcessor.java   |  1 +
 .../org/apache/solr/cloud/RecoveryStrategy.java    |  4 +-
 .../core/src/java/org/apache/solr/cloud/ZkCLI.java |  8 +++
 .../java/org/apache/solr/cloud/ZkController.java   |  5 ++
 .../java/org/apache/solr/cloud/ZkShardTerms.java   |  1 +
 .../solr/cloud/overseer/ClusterStateMutator.java   |  1 +
 .../solr/cloud/overseer/CollectionMutator.java     |  1 +
 .../apache/solr/cloud/rule/ReplicaAssigner.java    | 13 ++--
 .../src/java/org/apache/solr/cloud/rule/Rule.java  | 13 +++-
 .../solr/cloud/rule/ServerSnitchContext.java       |  1 +
 .../apache/solr/response/BinaryResponseWriter.java |  7 ++-
 .../apache/solr/response/CSVResponseWriter.java    |  4 +-
 .../org/apache/solr/response/DocsStreamer.java     |  1 +
 .../solr/response/GeoJSONResponseWriter.java       |  2 +
 .../solr/response/GraphMLResponseWriter.java       |  4 +-
 .../apache/solr/response/JSONResponseWriter.java   |  9 +--
 .../apache/solr/response/PHPResponseWriter.java    |  6 +-
 .../solr/response/PHPSerializedResponseWriter.java |  8 ++-
 .../apache/solr/response/PythonResponseWriter.java |  2 +-
 .../apache/solr/response/QueryResponseWriter.java  |  2 +-
 .../apache/solr/response/RawResponseWriter.java    |  2 +-
 .../apache/solr/response/RubyResponseWriter.java   |  2 +-
 .../solr/response/SchemaXmlResponseWriter.java     |  2 +-
 .../org/apache/solr/response/SchemaXmlWriter.java  | 18 +++---
 .../apache/solr/response/SmileResponseWriter.java  |  2 +-
 .../apache/solr/response/SolrQueryResponse.java    |  1 +
 .../solr/response/TabularResponseWriter.java       |  6 +-
 .../apache/solr/response/XMLResponseWriter.java    |  2 +-
 .../java/org/apache/solr/response/XMLWriter.java   |  7 ++-
 .../apache/solr/response/XSLTResponseWriter.java   |  2 +-
 .../transform/ExplainAugmenterFactory.java         |  2 +-
 .../response/transform/GeoTransformerFactory.java  |  1 +
 .../transform/RawValueTransformerFactory.java      |  3 +-
 .../transform/SubQueryAugmenterFactory.java        |  7 ++-
 .../response/transform/TransformerFactory.java     |  2 +-
 .../response/transform/ValueAugmenterFactory.java  |  2 +-
 .../response/transform/ValueSourceAugmenter.java   |  1 +
 .../src/java/org/apache/solr/schema/BoolField.java |  2 +-
 .../solr/schema/ClassicIndexSchemaFactory.java     |  2 +-
 .../org/apache/solr/schema/CurrencyFieldType.java  |  4 +-
 .../solr/schema/ExternalFileFieldReloader.java     |  2 +-
 .../apache/solr/schema/FieldTypePluginLoader.java  |  3 +
 .../java/org/apache/solr/schema/IndexSchema.java   |  5 ++
 .../solr/schema/LatLonPointSpatialField.java       |  1 +
 .../java/org/apache/solr/schema/LatLonType.java    |  2 +
 .../org/apache/solr/schema/ManagedIndexSchema.java |  6 ++
 .../solr/schema/ManagedIndexSchemaFactory.java     |  2 +-
 .../solr/schema/OpenExchangeRatesOrgProvider.java  |  4 +-
 .../org/apache/solr/schema/RandomSortField.java    |  2 +-
 .../solr/schema/RptWithGeometrySpatialField.java   |  1 +
 .../java/org/apache/solr/schema/SchemaManager.java |  2 +
 .../org/apache/solr/schema/StrFieldSource.java     |  2 +-
 .../org/apache/solr/schema/TrieDoubleField.java    |  2 +-
 .../org/apache/solr/schema/TrieFloatField.java     |  2 +-
 .../java/org/apache/solr/schema/TrieIntField.java  |  2 +-
 .../java/org/apache/solr/schema/TrieLongField.java |  2 +-
 .../apache/solr/security/AuditLoggerPlugin.java    |  2 +
 .../apache/solr/security/AuthorizationContext.java |  1 +
 .../solr/security/AutorizationEditOperation.java   |  9 +++
 .../org/apache/solr/security/BasicAuthPlugin.java  |  2 +-
 .../org/apache/solr/security/KerberosPlugin.java   |  4 +-
 .../solr/security/PKIAuthenticationPlugin.java     |  1 +
 .../java/org/apache/solr/security/Permission.java  |  9 ++-
 .../solr/security/PermissionNameProvider.java      |  1 +
 .../security/RuleBasedAuthorizationPlugin.java     |  1 +
 .../security/RuleBasedAuthorizationPluginBase.java |  6 +-
 .../security/Sha256AuthenticationProvider.java     |  9 ++-
 .../org/apache/solr/util/ConcurrentLRUCache.java   | 10 +++-
 .../src/java/org/apache/solr/util/DOMUtil.java     |  6 +-
 .../src/java/org/apache/solr/util/ExportTool.java  |  7 ++-
 .../apache/solr/util/MockSearchableSolrClient.java |  3 +-
 .../src/java/org/apache/solr/util/PackageTool.java | 69 +++++++++++-----------
 .../src/java/org/apache/solr/util/RTimerTree.java  |  1 +
 .../java/org/apache/solr/util/SolrLogLayout.java   |  1 +
 .../java/org/apache/solr/util/SolrLogPostTool.java |  2 +-
 .../java/org/apache/solr/util/SolrPluginUtils.java |  9 ++-
 .../java/org/apache/solr/util/TestInjection.java   |  3 +
 .../SSLCredentialProviderFactory.java              |  4 +-
 .../util/plugin/NamedListInitializedPlugin.java    |  2 +-
 .../org/apache/solr/util/stats/MetricUtils.java    |  8 ++-
 .../solr/util/tracing/SolrRequestCarrier.java      |  3 +-
 91 files changed, 300 insertions(+), 130 deletions(-)

diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index b3f493d..e87175c 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -256,6 +256,9 @@ Other Changes
 
 * SOLR-14455: Fix or suppress warnings in solr/test-framework (Erick Erickson)
 
+* SOLR-14559: Fix or suppress warnings in solr/core/src/java/org/apache/solr/util, 
+  response, cloud, security, schema, api (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/api/AnnotatedApi.java b/solr/core/src/java/org/apache/solr/api/AnnotatedApi.java
index a37240a..f563472 100644
--- a/solr/core/src/java/org/apache/solr/api/AnnotatedApi.java
+++ b/solr/core/src/java/org/apache/solr/api/AnnotatedApi.java
@@ -124,6 +124,7 @@ public class AnnotatedApi extends Api implements PermissionNameProvider {
     return endPoint.permission();
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   private static SpecProvider readSpec(EndPoint endPoint, List<Method> m) {
     return () -> {
       Map map = new LinkedHashMap();
@@ -179,6 +180,7 @@ public class AnnotatedApi extends Api implements PermissionNameProvider {
       commands.get(cmd.name).invoke(req, rsp, cmd);
     }
 
+    @SuppressWarnings({"rawtypes"})
     List<Map> errs = CommandOperation.captureErrors(cmds);
     if (!errs.isEmpty()) {
       log.error("{}{}", ERR, Utils.toJSONString(errs));
@@ -193,6 +195,7 @@ public class AnnotatedApi extends Api implements PermissionNameProvider {
     final Object obj;
     ObjectMapper mapper = SolrJacksonAnnotationInspector.createObjectMapper();
     int paramsCount;
+    @SuppressWarnings({"rawtypes"})
     Class c;
     boolean isWrappedInPayloadObj = false;
 
@@ -235,6 +238,7 @@ public class AnnotatedApi extends Api implements PermissionNameProvider {
 
     }
 
+    @SuppressWarnings({"unchecked"})
     void invoke(SolrQueryRequest req, SolrQueryResponse rsp, CommandOperation cmd) {
       try {
         if (paramsCount == 2) {
diff --git a/solr/core/src/java/org/apache/solr/api/ApiBag.java b/solr/core/src/java/org/apache/solr/api/ApiBag.java
index 84facfa..5740755 100644
--- a/solr/core/src/java/org/apache/solr/api/ApiBag.java
+++ b/solr/core/src/java/org/apache/solr/api/ApiBag.java
@@ -69,6 +69,7 @@ public class ApiBag {
   /**Register a POJO annotated with {@link EndPoint}
    * @param o the instance to be used for invocations
    */
+  @SuppressWarnings({"unchecked"})
   public synchronized List<Api> registerObject(Object o) {
     List<Api> l = AnnotatedApi.getApis(o);
     for (Api api : l) {
@@ -76,6 +77,7 @@ public class ApiBag {
     }
     return l;
   }
+  @SuppressWarnings({"unchecked"})
   public synchronized void register(Api api) {
     register(api, Collections.EMPTY_MAP);
   }
@@ -93,6 +95,7 @@ public class ApiBag {
     }
   }
 
+  @SuppressWarnings({"unchecked"})
   private void validateAndRegister(Api api, Map<String, String> nameSubstitutes) {
     ValidatingJsonMap spec = api.getSpec();
     Api introspect = new IntrospectApi(api, isCoreSpecific);
@@ -157,6 +160,7 @@ public class ApiBag {
       this.isCoreSpecific = isCoreSpecific;
     }
 
+    @SuppressWarnings({"unchecked", "rawtypes"})
     public void call(SolrQueryRequest req, SolrQueryResponse rsp) {
 
       String cmd = req.getParams().get("command");
@@ -197,6 +201,7 @@ public class ApiBag {
   public static Map<String, JsonSchemaValidator> getParsedSchema(ValidatingJsonMap commands) {
     Map<String, JsonSchemaValidator> validators = new HashMap<>();
     for (Object o : commands.entrySet()) {
+      @SuppressWarnings({"rawtypes"})
       Map.Entry cmd = (Map.Entry) o;
       try {
         validators.put((String) cmd.getKey(), new JsonSchemaValidator((Map) cmd.getValue()));
@@ -289,6 +294,7 @@ public class ApiBag {
     Object specObj = info == null ? null : info.attributes.get("spec");
     if (specObj == null) specObj = "emptySpec";
     if (specObj instanceof Map) {
+      @SuppressWarnings({"rawtypes"})
       Map map = (Map) specObj;
       return () -> ValidatingJsonMap.getDeepCopy(map, 4, false);
     } else {
@@ -296,6 +302,7 @@ public class ApiBag {
     }
   }
 
+  @SuppressWarnings({"rawtypes"})
   public static List<CommandOperation> getCommandOperations(ContentStream stream, Map<String, JsonSchemaValidator> validators, boolean validate) {
     List<CommandOperation> parsedCommands = null;
     try {
@@ -327,6 +334,7 @@ public class ApiBag {
       }
 
     }
+    @SuppressWarnings({"rawtypes"})
     List<Map> errs = CommandOperation.captureErrors(commandsCopy);
     if (!errs.isEmpty()) {
       throw new ExceptionWithErrObject(SolrException.ErrorCode.BAD_REQUEST, "Error in command payload", errs);
@@ -335,13 +343,15 @@ public class ApiBag {
   }
 
   public static class ExceptionWithErrObject extends SolrException {
+    @SuppressWarnings({"rawtypes"})
     private List<Map> errs;
 
-    public ExceptionWithErrObject(ErrorCode code, String msg, List<Map> errs) {
+    public ExceptionWithErrObject(ErrorCode code, String msg, @SuppressWarnings({"rawtypes"})List<Map> errs) {
       super(code, msg);
       this.errs = errs;
     }
 
+    @SuppressWarnings({"rawtypes"})
     public List<Map> getErrs() {
       return errs;
     }
diff --git a/solr/core/src/java/org/apache/solr/api/V2HttpCall.java b/solr/core/src/java/org/apache/solr/api/V2HttpCall.java
index d9dca56..c55a08b 100644
--- a/solr/core/src/java/org/apache/solr/api/V2HttpCall.java
+++ b/solr/core/src/java/org/apache/solr/api/V2HttpCall.java
@@ -265,6 +265,7 @@ public class V2HttpCall extends HttpSolrCall {
     return api;
   }
 
+  @SuppressWarnings({"unchecked"})
   private static CompositeApi getSubPathApi(PluginBag<SolrRequestHandler> requestHandlers, String path, String fullPath, CompositeApi compositeApi) {
 
     String newPath = path.endsWith(CommonParams.INTROSPECT) ? path.substring(0, path.length() - CommonParams.INTROSPECT.length()) : path;
@@ -286,6 +287,7 @@ public class V2HttpCall extends HttpSolrCall {
           result.put(prefix + e.getKey(), e.getValue());
         }
 
+        @SuppressWarnings({"rawtypes"})
         Map m = (Map) rsp.getValues().get("availableSubPaths");
         if(m != null){
           m.putAll(result);
diff --git a/solr/core/src/java/org/apache/solr/cloud/CloudConfigSetService.java b/solr/core/src/java/org/apache/solr/cloud/CloudConfigSetService.java
index e30a829..838d3fc 100644
--- a/solr/core/src/java/org/apache/solr/cloud/CloudConfigSetService.java
+++ b/solr/core/src/java/org/apache/solr/cloud/CloudConfigSetService.java
@@ -79,6 +79,7 @@ public class CloudConfigSetService extends ConfigSetService {
   }
 
   @Override
+  @SuppressWarnings({"rawtypes"})
   protected NamedList loadConfigSetFlags(CoreDescriptor cd, SolrResourceLoader loader) {
     try {
       return ConfigSetProperties.readFromResourceLoader(loader, ".");
diff --git a/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java b/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java
index 478b2d5..ecc653b 100644
--- a/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java
+++ b/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java
@@ -131,6 +131,7 @@ public class CloudUtil {
   /**Read the list of public keys from ZK
    */
 
+  @SuppressWarnings({"unchecked"})
   public static Map<String, byte[]> getTrustedKeys(SolrZkClient zk, String dir) {
     Map<String, byte[]> result = new HashMap<>();
     try {
diff --git a/solr/core/src/java/org/apache/solr/cloud/Overseer.java b/solr/core/src/java/org/apache/solr/cloud/Overseer.java
index 54e0f54..90c4e5d 100644
--- a/solr/core/src/java/org/apache/solr/cloud/Overseer.java
+++ b/solr/core/src/java/org/apache/solr/cloud/Overseer.java
@@ -344,6 +344,7 @@ public class Overseer implements SolrCloseable {
         return;
       }
       try {
+        @SuppressWarnings({"rawtypes"})
         Map m = (Map) Utils.fromJSON(data);
         String id = (String) m.get(ID);
         if(overseerCollectionConfigSetProcessor.getId().equals(id)){
@@ -664,7 +665,9 @@ public class Overseer implements SolrCloseable {
           .setWithSegments(true)
           .setWithFieldInfo(true);
       CollectionAdminResponse rsp = req.process(client);
+      @SuppressWarnings({"unchecked"})
       NamedList<Object> status = (NamedList<Object>)rsp.getResponse().get(CollectionAdminParams.SYSTEM_COLL);
+      @SuppressWarnings({"unchecked"})
       Collection<String> nonCompliant = (Collection<String>)status.get("schemaNonCompliant");
       if (!nonCompliant.contains("(NONE)")) {
         consumer.accept("indexFieldsNotMatchingSchema", nonCompliant);
@@ -675,16 +678,20 @@ public class Overseer implements SolrCloseable {
       String currentVersion = Version.LATEST.toString();
       segmentVersions.add(currentVersion);
       segmentCreatedMajorVersions.add(currentMajorVersion);
+      @SuppressWarnings({"unchecked"})
       NamedList<Object> shards = (NamedList<Object>)status.get("shards");
       for (Map.Entry<String, Object> entry : shards) {
+        @SuppressWarnings({"unchecked"})
         NamedList<Object> leader = (NamedList<Object>)((NamedList<Object>)entry.getValue()).get("leader");
         if (leader == null) {
           continue;
         }
+        @SuppressWarnings({"unchecked"})
         NamedList<Object> segInfos = (NamedList<Object>)leader.get("segInfos");
         if (segInfos == null) {
           continue;
         }
+        @SuppressWarnings({"unchecked"})
         NamedList<Object> infos = (NamedList<Object>)segInfos.get("info");
         if (((Number)infos.get("numSegments")).intValue() > 0) {
           segmentVersions.add(infos.get("minSegmentLuceneVersion").toString());
@@ -692,8 +699,10 @@ public class Overseer implements SolrCloseable {
         if (infos.get("commitLuceneVersion") != null) {
           segmentVersions.add(infos.get("commitLuceneVersion").toString());
         }
+        @SuppressWarnings({"unchecked"})
         NamedList<Object> segmentInfos = (NamedList<Object>)segInfos.get("segments");
         segmentInfos.forEach((k, v) -> {
+          @SuppressWarnings({"unchecked"})
           NamedList<Object> segment = (NamedList<Object>)v;
           segmentVersions.add(segment.get("version").toString());
           if (segment.get("minVersion") != null) {
diff --git a/solr/core/src/java/org/apache/solr/cloud/OverseerConfigSetMessageHandler.java b/solr/core/src/java/org/apache/solr/cloud/OverseerConfigSetMessageHandler.java
index 83d4c65..ebb460d 100644
--- a/solr/core/src/java/org/apache/solr/cloud/OverseerConfigSetMessageHandler.java
+++ b/solr/core/src/java/org/apache/solr/cloud/OverseerConfigSetMessageHandler.java
@@ -77,19 +77,23 @@ public class OverseerConfigSetMessageHandler implements OverseerMessageHandler {
   // in this way, we prevent a Base ConfigSet from being deleted while it is being copied
   // but don't prevent different ConfigSets from being created with the same Base ConfigSet
   // at the same time.
+  @SuppressWarnings({"rawtypes"})
   final private Set configSetWriteWip;
+  @SuppressWarnings({"rawtypes"})
   final private Set configSetReadWip;
 
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   public OverseerConfigSetMessageHandler(ZkStateReader zkStateReader) {
     this.zkStateReader = zkStateReader;
-    this.configSetWriteWip = new HashSet();
-    this.configSetReadWip = new HashSet();
+    this.configSetWriteWip = new HashSet<>();
+    this.configSetReadWip = new HashSet<>();
   }
 
   @Override
+  @SuppressWarnings({"unchecked"})
   public OverseerSolrResponse processMessage(ZkNodeProps message, String operation) {
+    @SuppressWarnings({"rawtypes"})
     NamedList results = new NamedList();
     try {
       if (!operation.startsWith(CONFIGSETS_ACTION_PREFIX)) {
@@ -126,6 +130,7 @@ public class OverseerConfigSetMessageHandler implements OverseerMessageHandler {
       }
 
       results.add("Operation " + operation + " caused exception:", e);
+      @SuppressWarnings({"rawtypes"})
       SimpleOrderedMap nl = new SimpleOrderedMap();
       nl.add("msg", e.getMessage());
       nl.add("rspCode", e instanceof SolrException ? ((SolrException) e).code() : -1);
@@ -165,6 +170,7 @@ public class OverseerConfigSetMessageHandler implements OverseerMessageHandler {
     markExclusive(configSetName, baseConfigSet);
   }
 
+  @SuppressWarnings({"unchecked"})
   private void markExclusive(String configSetName, String baseConfigSetName) {
     synchronized (configSetWriteWip) {
       configSetWriteWip.add(configSetName);
@@ -220,6 +226,7 @@ public class OverseerConfigSetMessageHandler implements OverseerMessageHandler {
     return null;
   }
 
+  @SuppressWarnings({"rawtypes"})
   private NamedList getConfigSetProperties(String path) throws IOException {
     byte[] oldPropsData = null;
     try {
@@ -256,7 +263,8 @@ public class OverseerConfigSetMessageHandler implements OverseerMessageHandler {
     return properties;
   }
 
-  private void mergeOldProperties(Map<String, Object> newProps, NamedList oldProps) {
+  private void mergeOldProperties(Map<String, Object> newProps, @SuppressWarnings({"rawtypes"})NamedList oldProps) {
+    @SuppressWarnings({"unchecked"})
     Iterator<Map.Entry<String, Object>> it = oldProps.iterator();
     while (it.hasNext()) {
       Map.Entry<String, Object> oldEntry = it.next();
@@ -304,6 +312,7 @@ public class OverseerConfigSetMessageHandler implements OverseerMessageHandler {
     Map<String, Object> props = getNewProperties(message);
     if (props != null) {
       // read the old config properties and do a merge, if necessary
+      @SuppressWarnings({"rawtypes"})
       NamedList oldProps = getConfigSetProperties(getPropertyPath(baseConfigSetName, propertyPath));
       if (oldProps != null) {
         mergeOldProperties(props, oldProps);
@@ -370,6 +379,7 @@ public class OverseerConfigSetMessageHandler implements OverseerMessageHandler {
     }
 
     String propertyPath = ConfigSetProperties.DEFAULT_FILENAME;
+    @SuppressWarnings({"rawtypes"})
     NamedList properties = getConfigSetProperties(getPropertyPath(configSetName, propertyPath));
     if (properties != null) {
       Object immutable = properties.get(ConfigSetProperties.IMMUTABLE_CONFIGSET_ARG);
diff --git a/solr/core/src/java/org/apache/solr/cloud/OverseerNodePrioritizer.java b/solr/core/src/java/org/apache/solr/cloud/OverseerNodePrioritizer.java
index 125f98b..20e650a 100644
--- a/solr/core/src/java/org/apache/solr/cloud/OverseerNodePrioritizer.java
+++ b/solr/core/src/java/org/apache/solr/cloud/OverseerNodePrioritizer.java
@@ -66,8 +66,10 @@ public class OverseerNodePrioritizer {
   public synchronized void prioritizeOverseerNodes(String overseerId) throws Exception {
     SolrZkClient zk = zkStateReader.getZkClient();
     if(!zk.exists(ZkStateReader.ROLES,true))return;
+    @SuppressWarnings({"rawtypes"})
     Map m = (Map) Utils.fromJSON(zk.getData(ZkStateReader.ROLES, null, new Stat(), true));
 
+    @SuppressWarnings({"rawtypes"})
     List overseerDesignates = (List) m.get("overseer");
     if(overseerDesignates==null || overseerDesignates.isEmpty()) return;
     String ldr = OverseerTaskProcessor.getLeaderNode(zk);
diff --git a/solr/core/src/java/org/apache/solr/cloud/OverseerSolrResponse.java b/solr/core/src/java/org/apache/solr/cloud/OverseerSolrResponse.java
index 92f6443..4257a76 100644
--- a/solr/core/src/java/org/apache/solr/cloud/OverseerSolrResponse.java
+++ b/solr/core/src/java/org/apache/solr/cloud/OverseerSolrResponse.java
@@ -21,11 +21,12 @@ import org.apache.solr.common.util.NamedList;
 
 public class OverseerSolrResponse extends SolrResponse {
   
+  @SuppressWarnings({"rawtypes"})
   NamedList responseList = null;
 
   private long elapsedTime;
   
-  public OverseerSolrResponse(NamedList list) {
+  public OverseerSolrResponse(@SuppressWarnings({"rawtypes"})NamedList list) {
     responseList = list;
   }
   
@@ -45,6 +46,7 @@ public class OverseerSolrResponse extends SolrResponse {
   }
 
   @Override
+  @SuppressWarnings({"unchecked"})
   public NamedList<Object> getResponse() {
     return responseList;
   }
diff --git a/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java b/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java
index 786a718..cf86033 100644
--- a/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java
+++ b/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java
@@ -421,6 +421,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
     } catch (KeeperException.NoNodeException e) {
       return null;
     }
+    @SuppressWarnings({"rawtypes"})
     Map m = (Map) Utils.fromJSON(data);
     return  (String) m.get(ID);
   }
diff --git a/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java b/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
index 35296a6..2be35fb 100644
--- a/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
+++ b/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
@@ -79,14 +79,16 @@ import org.slf4j.LoggerFactory;
 public class RecoveryStrategy implements Runnable, Closeable {
 
   public static class Builder implements NamedListInitializedPlugin {
+    @SuppressWarnings({"rawtypes"})
     private NamedList args;
 
     @Override
-    public void init(NamedList args) {
+    public void init(@SuppressWarnings({"rawtypes"})NamedList args) {
       this.args = args;
     }
 
     // this should only be used from SolrCoreState
+    @SuppressWarnings({"unchecked"})
     public RecoveryStrategy create(CoreContainer cc, CoreDescriptor cd,
         RecoveryStrategy.RecoveryListener recoveryListener) {
       final RecoveryStrategy recoveryStrategy = newRecoveryStrategy(cc, cd, recoveryListener);
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java b/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java
index 575105b..c59c334 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java
@@ -257,6 +257,7 @@ public class ZkCLI {
           zkClient.printLayoutToStream(stdout);
         } else if (line.getOptionValue(CMD).equals(LS)) {
 
+          @SuppressWarnings({"rawtypes"})
           List argList = line.getArgList();
           if (argList.size() != 1) {
             stdout.println("-" + LS + " requires one arg - the path to list");
@@ -269,6 +270,7 @@ public class ZkCLI {
           stdout.println(sb.toString());
 
         } else if (line.getOptionValue(CMD).equalsIgnoreCase(CLEAR)) {
+          @SuppressWarnings({"rawtypes"})
           List arglist = line.getArgList();
           if (arglist.size() != 1) {
             stdout.println("-" + CLEAR + " requires one arg - the path to clear");
@@ -276,6 +278,7 @@ public class ZkCLI {
           }
           zkClient.clean(arglist.get(0).toString());
         } else if (line.getOptionValue(CMD).equalsIgnoreCase(MAKEPATH)) {
+          @SuppressWarnings({"rawtypes"})
           List arglist = line.getArgList();
           if (arglist.size() != 1) {
             stdout.println("-" + MAKEPATH + " requires one arg - the path to make");
@@ -283,6 +286,7 @@ public class ZkCLI {
           }
           zkClient.makePath(arglist.get(0).toString(), true);
         } else if (line.getOptionValue(CMD).equalsIgnoreCase(PUT)) {
+          @SuppressWarnings({"rawtypes"})
           List arglist = line.getArgList();
           if (arglist.size() != 2) {
             stdout.println("-" + PUT + " requires two args - the path to create and the data string");
@@ -295,6 +299,7 @@ public class ZkCLI {
             zkClient.create(path, arglist.get(1).toString().getBytes(StandardCharsets.UTF_8), CreateMode.PERSISTENT, true);
           }
         } else if (line.getOptionValue(CMD).equalsIgnoreCase(PUT_FILE)) {
+          @SuppressWarnings({"rawtypes"})
           List arglist = line.getArgList();
           if (arglist.size() != 2) {
             stdout.println("-" + PUT_FILE + " requires two args - the path to create in ZK and the path to the local file");
@@ -314,6 +319,7 @@ public class ZkCLI {
           }
 
         } else if (line.getOptionValue(CMD).equalsIgnoreCase(GET)) {
+          @SuppressWarnings({"rawtypes"})
           List arglist = line.getArgList();
           if (arglist.size() != 1) {
             stdout.println("-" + GET + " requires one arg - the path to get");
@@ -322,6 +328,7 @@ public class ZkCLI {
           byte [] data = zkClient.getData(arglist.get(0).toString(), null, null, true);
           stdout.println(new String(data, StandardCharsets.UTF_8));
         } else if (line.getOptionValue(CMD).equalsIgnoreCase(GET_FILE)) {
+          @SuppressWarnings({"rawtypes"})
           List arglist = line.getArgList();
           if (arglist.size() != 2) {
             stdout.println("-" + GET_FILE + "requires two args - the path to get and the file to save it to");
@@ -330,6 +337,7 @@ public class ZkCLI {
           byte [] data = zkClient.getData(arglist.get(0).toString(), null, null, true);
           FileUtils.writeByteArrayToFile(new File(arglist.get(1).toString()), data);
         } else if (line.getOptionValue(CMD).equals(UPDATEACLS)) {
+          @SuppressWarnings({"rawtypes"})
           List arglist = line.getArgList();
           if (arglist.size() != 1) {
             stdout.println("-" + UPDATEACLS + " requires one arg - the path to update");
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
index e38b1c6..2b2c5ab 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
@@ -289,6 +289,7 @@ public class ZkController implements Closeable {
     }
   }
 
+  @SuppressWarnings({"unchecked"})
   public ZkController(final CoreContainer cc, String zkServerAddress, int zkClientConnectTimeout, CloudConfig cloudConfig, final CurrentCoreDescriptorProvider registerOnReconnect)
       throws InterruptedException, TimeoutException, IOException {
 
@@ -2248,8 +2249,10 @@ public class ZkController implements Closeable {
     try {
       byte[] data = zkClient.getData(ZkStateReader.ROLES, null, new Stat(), true);
       if (data == null) return;
+      @SuppressWarnings({"rawtypes"})
       Map roles = (Map) Utils.fromJSON(data);
       if (roles == null) return;
+      @SuppressWarnings({"rawtypes"})
       List nodeList = (List) roles.get("overseer");
       if (nodeList == null) return;
       if (nodeList.contains(getNodeName())) {
@@ -2313,6 +2316,7 @@ public class ZkController implements Closeable {
     }
   }
 
+  @SuppressWarnings({"unchecked"})
   Set<OnReconnect> getCurrentOnReconnectListeners() {
     HashSet<OnReconnect> clonedListeners;
     synchronized (reconnectListeners) {
@@ -2674,6 +2678,7 @@ public class ZkController implements Closeable {
         }
         registeredSearcher.decref();
       } else  {
+        @SuppressWarnings({"rawtypes"})
         Future[] waitSearcher = new Future[1];
         if (log.isInfoEnabled()) {
           log.info("No registered searcher found for core: {}, waiting until a searcher is registered before publishing as active", core.getName());
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java b/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java
index bd446c4..cc33205 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java
@@ -349,6 +349,7 @@ public class ZkShardTerms implements AutoCloseable{
   /**
    * Fetch latest terms from ZK
    */
+  @SuppressWarnings({"unchecked"})
   public void refreshTerms() {
     ShardTerms newTerms;
     try {
diff --git a/solr/core/src/java/org/apache/solr/cloud/overseer/ClusterStateMutator.java b/solr/core/src/java/org/apache/solr/cloud/overseer/ClusterStateMutator.java
index 397960f..906f935 100644
--- a/solr/core/src/java/org/apache/solr/cloud/overseer/ClusterStateMutator.java
+++ b/solr/core/src/java/org/apache/solr/cloud/overseer/ClusterStateMutator.java
@@ -52,6 +52,7 @@ public class ClusterStateMutator {
     this.stateManager = dataProvider.getDistribStateManager();
   }
 
+  @SuppressWarnings({"unchecked"})
   public ZkWriteCommand createCollection(ClusterState clusterState, ZkNodeProps message) {
     String cName = message.getStr(NAME);
     log.debug("building a new cName: {}", cName);
diff --git a/solr/core/src/java/org/apache/solr/cloud/overseer/CollectionMutator.java b/solr/core/src/java/org/apache/solr/cloud/overseer/CollectionMutator.java
index 1c2be1b..80e0e9e 100644
--- a/solr/core/src/java/org/apache/solr/cloud/overseer/CollectionMutator.java
+++ b/solr/core/src/java/org/apache/solr/cloud/overseer/CollectionMutator.java
@@ -59,6 +59,7 @@ public class CollectionMutator {
     DocCollection collection = clusterState.getCollection(collectionName);
     Slice slice = collection.getSlice(shardId);
     if (slice == null) {
+      @SuppressWarnings({"unchecked"})
       Map<String, Replica> replicas = Collections.EMPTY_MAP;
       Map<String, Object> sliceProps = new HashMap<>();
       String shardRange = message.getStr(ZkStateReader.SHARD_RANGE_PROP);
diff --git a/solr/core/src/java/org/apache/solr/cloud/rule/ReplicaAssigner.java b/solr/core/src/java/org/apache/solr/cloud/rule/ReplicaAssigner.java
index a62480e..f6679fb 100644
--- a/solr/core/src/java/org/apache/solr/cloud/rule/ReplicaAssigner.java
+++ b/solr/core/src/java/org/apache/solr/cloud/rule/ReplicaAssigner.java
@@ -70,9 +70,10 @@ public class ReplicaAssigner {
    * @param shardVsNodes        The current state of the system. can be an empty map if no nodes
    *                            are created in this collection till now
    */
+  @SuppressWarnings({"unchecked"})
   public ReplicaAssigner(List<Rule> rules,
                          Map<String, Integer> shardVsReplicaCount,
-                         List snitches,
+                         @SuppressWarnings({"rawtypes"})List snitches,
                          Map<String, Map<String, Integer>> shardVsNodes,
                          List<String> participatingLiveNodes,
                          SolrCloudManager cloudManager, ClusterState clusterState) {
@@ -185,6 +186,7 @@ public class ReplicaAssigner {
   }
 
 
+  @SuppressWarnings({"unchecked"})
   private Map<ReplicaPosition, String> tryAPermutationOfRules(int[] rulePermutation, List<ReplicaPosition> replicaPositions, boolean fuzzyPhase) {
     Map<String, Map<String, Object>> nodeVsTagsCopy = getDeepCopy(nodeVsTags, 2);
     Map<ReplicaPosition, String> result = new LinkedHashMap<>();
@@ -332,10 +334,12 @@ public class ReplicaAssigner {
   /**
    * This method uses the snitches and get the tags for all the nodes
    */
-  private Map<String, Map<String, Object>> getTagsForNodes(final SolrCloudManager cloudManager, List snitchConf) {
+  @SuppressWarnings({"unchecked"})
+  private Map<String, Map<String, Object>> getTagsForNodes(final SolrCloudManager cloudManager, @SuppressWarnings({"rawtypes"})List snitchConf) {
 
+    @SuppressWarnings({"rawtypes"})
     Map<Class, SnitchInfoImpl> snitches = getSnitchInfos(cloudManager, snitchConf);
-    for (Class c : Snitch.WELL_KNOWN_SNITCHES) {
+    for (@SuppressWarnings({"rawtypes"})Class c : Snitch.WELL_KNOWN_SNITCHES) {
       if (snitches.containsKey(c)) continue;// it is already specified explicitly , ignore
       try {
         snitches.put(c, new SnitchInfoImpl(Collections.EMPTY_MAP, (Snitch) c.newInstance(), cloudManager));
@@ -409,11 +413,12 @@ public class ReplicaAssigner {
     return new ServerSnitchContext(info, node, snitchSession, cloudManager);
   }
 
-  public static void verifySnitchConf(SolrCloudManager cloudManager, List snitchConf) {
+  public static void verifySnitchConf(SolrCloudManager cloudManager, @SuppressWarnings({"rawtypes"})List snitchConf) {
     getSnitchInfos(cloudManager, snitchConf);
   }
 
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   static Map<Class, SnitchInfoImpl> getSnitchInfos(SolrCloudManager cloudManager, List snitchConf) {
     if (snitchConf == null) snitchConf = Collections.emptyList();
     Map<Class, SnitchInfoImpl> snitches = new LinkedHashMap<>();
diff --git a/solr/core/src/java/org/apache/solr/cloud/rule/Rule.java b/solr/core/src/java/org/apache/solr/cloud/rule/Rule.java
index e54f5a0..e9397e5 100644
--- a/solr/core/src/java/org/apache/solr/cloud/rule/Rule.java
+++ b/solr/core/src/java/org/apache/solr/cloud/rule/Rule.java
@@ -46,8 +46,9 @@ public class Rule {
   Condition replica;
   Condition tag;
 
-  public Rule(Map m) {
+  public Rule(@SuppressWarnings({"rawtypes"})Map m) {
     for (Object o : m.entrySet()) {
+      @SuppressWarnings({"rawtypes"})
       Map.Entry e = (Map.Entry) o;
       Condition condition = new Condition(String.valueOf(e.getKey()), String.valueOf(e.getValue()));
       if (condition.name.equals(SHARD_ID_PROP)) shard = condition;
@@ -69,7 +70,7 @@ public class Rule {
 
   }
 
-  static Object parseObj(Object o, Class typ) {
+  static Object parseObj(Object o, @SuppressWarnings({"rawtypes"})Class typ) {
     if (o == null) return o;
     if (typ == String.class) return String.valueOf(o);
     if (typ == Integer.class) {
@@ -79,6 +80,7 @@ public class Rule {
     return o;
   }
 
+  @SuppressWarnings({"rawtypes"})
   public static Map parseRule(String s) {
     Map<String, String> result = new LinkedHashMap<>();
     s = s.trim();
@@ -98,7 +100,9 @@ public class Rule {
 
 
   @Override
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public String toString() {
+    @SuppressWarnings({"rawtypes"})
     Map map = new LinkedHashMap();
     if (shard != SHARD_DEFAULT) map.put(shard.name, shard.operand.toStr(shard.val));
     if (replica != REPLICA_DEFAULT) map.put(replica.name, replica.operand.toStr(replica.val));
@@ -360,6 +364,11 @@ public class Rule {
     }
 
     @Override
+    public int hashCode() {
+      throw new UnsupportedOperationException("TODO unimplemented");
+    }
+
+    @Override
     public String toString() {
       return name + ":" + operand.toStr(val) + (fuzzy ? "~" : "");
     }
diff --git a/solr/core/src/java/org/apache/solr/cloud/rule/ServerSnitchContext.java b/solr/core/src/java/org/apache/solr/cloud/rule/ServerSnitchContext.java
index 3656011..9308342 100644
--- a/solr/core/src/java/org/apache/solr/cloud/rule/ServerSnitchContext.java
+++ b/solr/core/src/java/org/apache/solr/cloud/rule/ServerSnitchContext.java
@@ -41,6 +41,7 @@ public class ServerSnitchContext extends SnitchContext {
   }
 
 
+  @SuppressWarnings({"rawtypes"})
   public Map getZkJson(String path) throws KeeperException, InterruptedException {
     try {
       return Utils.getJson(cloudManager.getDistribStateManager(), path) ;
diff --git a/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java b/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java
index 617f92c..a78a134 100644
--- a/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java
@@ -81,7 +81,7 @@ public class BinaryResponseWriter implements BinaryQueryResponseWriter {
   }
 
   @Override
-  public void init(NamedList args) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList args) {
     /* NOOP */
   }
 
@@ -166,7 +166,7 @@ public class BinaryResponseWriter implements BinaryQueryResponseWriter {
     public void writeResults(ResultContext ctx, JavaBinCodec codec) throws IOException {
       codec.writeTag(JavaBinCodec.SOLRDOCLST);
       List<Object> l = new ArrayList<>(4);
-      l.add((long) ctx.getDocList().matches());
+      l.add( ctx.getDocList().matches());
       l.add((long) ctx.getDocList().offset());
       
       Float maxScore = null;
@@ -239,6 +239,7 @@ public class BinaryResponseWriter implements BinaryQueryResponseWriter {
       return null;
     }
 
+    @SuppressWarnings({"unchecked"})
     public Collection<Object> getRawFieldValues(String name) {
       Object v = _fields.get(name);
       if (v instanceof Collection) {
@@ -266,6 +267,7 @@ public class BinaryResponseWriter implements BinaryQueryResponseWriter {
         }
 
         @Override
+        @SuppressWarnings({"unchecked"})
         public Entry<String, Object> next() {
           return convertCharSeq(it.next());
         }
@@ -284,6 +286,7 @@ public class BinaryResponseWriter implements BinaryQueryResponseWriter {
     public Object getFirstValue(String name) {
       Object v = _fields.get(name);
       if (v == null || !(v instanceof Collection)) return convertCharSeq(v);
+      @SuppressWarnings({"rawtypes"})
       Collection c = (Collection) v;
       if (c.size() > 0) {
         return convertCharSeq(c.iterator().next());
diff --git a/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java b/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java
index e35e3ed..0d31d2d 100644
--- a/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java
@@ -47,7 +47,7 @@ import org.apache.solr.search.ReturnFields;
 public class CSVResponseWriter implements QueryResponseWriter {
 
   @Override
-  public void init(NamedList n) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList n) {
   }
 
   @Override
@@ -323,8 +323,10 @@ class CSVWriter extends TabularResponseWriter {
   }
 
   //NOTE: a document cannot currently contain another document
+  @SuppressWarnings({"rawtypes"})
   List tmpList;
   @Override
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public void writeSolrDocument(String name, SolrDocument doc, ReturnFields returnFields, int idx ) throws IOException {
     if (tmpList == null) {
       tmpList = new ArrayList(1);
diff --git a/solr/core/src/java/org/apache/solr/response/DocsStreamer.java b/solr/core/src/java/org/apache/solr/response/DocsStreamer.java
index c6010e1..995685f 100644
--- a/solr/core/src/java/org/apache/solr/response/DocsStreamer.java
+++ b/solr/core/src/java/org/apache/solr/response/DocsStreamer.java
@@ -57,6 +57,7 @@ import org.apache.solr.search.SolrReturnFields;
  * This streams SolrDocuments from a DocList and applies transformer
  */
 public class DocsStreamer implements Iterator<SolrDocument> {
+  @SuppressWarnings({"rawtypes"})
   public static final Set<Class> KNOWN_TYPES = new HashSet<>();
 
   private final org.apache.solr.response.ResultContext rctx;
diff --git a/solr/core/src/java/org/apache/solr/response/GeoJSONResponseWriter.java b/solr/core/src/java/org/apache/solr/response/GeoJSONResponseWriter.java
index 422ad0d..1afca18 100644
--- a/solr/core/src/java/org/apache/solr/response/GeoJSONResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/GeoJSONResponseWriter.java
@@ -106,6 +106,7 @@ class GeoJSONWriter extends JSONWriter {
       }
       rsp.removeResponseHeader();
 
+      @SuppressWarnings({"unchecked"})
       NamedList<Object> vals = rsp.getValues();
       Object response = vals.remove("response");
       if(vals.size()==0) {
@@ -195,6 +196,7 @@ class GeoJSONWriter extends JSONWriter {
   {
     // Support multi-valued geometries
     if(geo instanceof Iterable) {
+      @SuppressWarnings({"rawtypes"})
       Iterator iter = ((Iterable)geo).iterator();
       if(!iter.hasNext()) {
         return; // empty list
diff --git a/solr/core/src/java/org/apache/solr/response/GraphMLResponseWriter.java b/solr/core/src/java/org/apache/solr/response/GraphMLResponseWriter.java
index 926d79f..568a584 100644
--- a/solr/core/src/java/org/apache/solr/response/GraphMLResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/GraphMLResponseWriter.java
@@ -34,7 +34,7 @@ import org.apache.solr.request.SolrQueryRequest;
 
 public class GraphMLResponseWriter implements QueryResponseWriter {
 
-  public void init(NamedList args) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList args) {
     /* NOOP */
   }
 
@@ -94,7 +94,7 @@ public class GraphMLResponseWriter implements QueryResponseWriter {
 
         printWriter.write("<node id=\""+ xmlEscape(id)+"\"");
 
-        List<String> outfields = new ArrayList();
+        List<String> outfields = new ArrayList<>();
         Iterator<Object> keys = tuple.getFields().keySet().iterator();
         while(keys.hasNext()) {
           String key = String.valueOf(keys.next());
diff --git a/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java b/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java
index e89d15e..30a5e5c 100644
--- a/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java
@@ -40,7 +40,7 @@ public class JSONResponseWriter implements QueryResponseWriter {
   private String contentType = CONTENT_TYPE_JSON_UTF8;
 
   @Override
-  public void init(NamedList namedList) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList namedList) {
     String contentType = (String) namedList.get("content-type");
     if (contentType != null) {
       this.contentType = contentType;
@@ -103,7 +103,7 @@ class ArrayOfNameTypeValueJSONWriter extends JSONWriter {
   }
 
   @Override
-  public void writeNamedList(String name, NamedList val) throws IOException {
+  public void writeNamedList(String name, @SuppressWarnings({"rawtypes"})NamedList val) throws IOException {
 
     if (val instanceof SimpleOrderedMap) {
       super.writeNamedList(name, val);
@@ -230,13 +230,14 @@ class ArrayOfNameTypeValueJSONWriter extends JSONWriter {
 
 
   @Override
-  public void writeMap(String name, Map val, boolean excludeOuter, boolean isFirstVal) throws IOException {
+  public void writeMap(String name, @SuppressWarnings({"rawtypes"})Map val,
+                       boolean excludeOuter, boolean isFirstVal) throws IOException {
     ifNeededWriteTypeAndValueKey("map");
     super.writeMap(name, val, excludeOuter, isFirstVal);
   }
 
   @Override
-  public void writeArray(String name, Iterator val) throws IOException {
+  public void writeArray(String name, @SuppressWarnings({"rawtypes"})Iterator val) throws IOException {
     ifNeededWriteTypeAndValueKey("array");
     super.writeArray(name, val);
   }
diff --git a/solr/core/src/java/org/apache/solr/response/PHPResponseWriter.java b/solr/core/src/java/org/apache/solr/response/PHPResponseWriter.java
index ad12128..98ac8f4 100644
--- a/solr/core/src/java/org/apache/solr/response/PHPResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/PHPResponseWriter.java
@@ -29,7 +29,7 @@ public class PHPResponseWriter implements QueryResponseWriter {
   private String contentType = CONTENT_TYPE_PHP_UTF8;
 
   @Override
-  public void init(NamedList namedList) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList namedList) {
     String contentType = (String) namedList.get("content-type");
     if (contentType != null) {
       this.contentType = contentType;
@@ -58,7 +58,7 @@ class PHPWriter extends JSONWriter {
   }
   
   @Override
-  public void writeNamedList(String name, NamedList val) throws IOException {
+  public void writeNamedList(String name, @SuppressWarnings({"rawtypes"})NamedList val) throws IOException {
     writeNamedListAsMapMangled(name,val);
   }
 
@@ -78,7 +78,7 @@ class PHPWriter extends JSONWriter {
   }
 
   @Override
-  public void writeArray(String name, List l) throws IOException {
+  public void writeArray(String name, @SuppressWarnings({"rawtypes"})List l) throws IOException {
     writeArray(name,l.iterator());
   }
 
diff --git a/solr/core/src/java/org/apache/solr/response/PHPSerializedResponseWriter.java b/solr/core/src/java/org/apache/solr/response/PHPSerializedResponseWriter.java
index 9db67ee..155f267 100644
--- a/solr/core/src/java/org/apache/solr/response/PHPSerializedResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/PHPSerializedResponseWriter.java
@@ -44,7 +44,7 @@ public class PHPSerializedResponseWriter implements QueryResponseWriter {
   private String contentType = CONTENT_TYPE_PHP_UTF8;
 
   @Override
-  public void init(NamedList namedList) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList namedList) {
     String contentType = (String) namedList.get("content-type");
     if (contentType != null) {
       this.contentType = contentType;
@@ -85,7 +85,7 @@ class PHPSerializedWriter extends JSONWriter {
   }
   
   @Override
-  public void writeNamedList(String name, NamedList val) throws IOException {
+  public void writeNamedList(String name, @SuppressWarnings({"rawtypes"})NamedList val) throws IOException {
     writeNamedListAsMapMangled(name,val);
   }
   
@@ -186,7 +186,9 @@ class PHPSerializedWriter extends JSONWriter {
   }
 
   @Override
-  public void writeArray(String name, Iterator val) throws IOException {
+  @SuppressWarnings({"unchecked"})
+  public void writeArray(String name, @SuppressWarnings({"rawtypes"})Iterator val) throws IOException {
+    @SuppressWarnings({"rawtypes"})
     ArrayList vals = new ArrayList();
     while( val.hasNext() ) {
       vals.add(val.next());
diff --git a/solr/core/src/java/org/apache/solr/response/PythonResponseWriter.java b/solr/core/src/java/org/apache/solr/response/PythonResponseWriter.java
index be53ddb..5c7582a 100644
--- a/solr/core/src/java/org/apache/solr/response/PythonResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/PythonResponseWriter.java
@@ -26,7 +26,7 @@ public class PythonResponseWriter implements QueryResponseWriter {
   static String CONTENT_TYPE_PYTHON_ASCII="text/x-python;charset=US-ASCII";
 
   @Override
-  public void init(NamedList n) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList n) {
     /* NOOP */
   }
   
diff --git a/solr/core/src/java/org/apache/solr/response/QueryResponseWriter.java b/solr/core/src/java/org/apache/solr/response/QueryResponseWriter.java
index 8f460dd..5960e36 100644
--- a/solr/core/src/java/org/apache/solr/response/QueryResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/QueryResponseWriter.java
@@ -80,7 +80,7 @@ public interface QueryResponseWriter extends NamedListInitializedPlugin {
    * solrconfig.xml
    */
   @Override
-  public void init(NamedList args);
+  public void init(@SuppressWarnings({"rawtypes"})NamedList args);
 }
 
 
diff --git a/solr/core/src/java/org/apache/solr/response/RawResponseWriter.java b/solr/core/src/java/org/apache/solr/response/RawResponseWriter.java
index ffad4b9..9261a55 100644
--- a/solr/core/src/java/org/apache/solr/response/RawResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/RawResponseWriter.java
@@ -54,7 +54,7 @@ public class RawResponseWriter implements BinaryQueryResponseWriter {
   private String _baseWriter = null;
   
   @Override
-  public void init(NamedList n) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList n) {
     if( n != null ) {
       Object base = n.get( "base" );
       if( base != null ) {
diff --git a/solr/core/src/java/org/apache/solr/response/RubyResponseWriter.java b/solr/core/src/java/org/apache/solr/response/RubyResponseWriter.java
index eb4c17d..6eb61c1 100644
--- a/solr/core/src/java/org/apache/solr/response/RubyResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/RubyResponseWriter.java
@@ -26,7 +26,7 @@ public class RubyResponseWriter implements QueryResponseWriter {
   static String CONTENT_TYPE_RUBY_UTF8="text/x-ruby;charset=UTF-8";
 
   @Override
-  public void init(NamedList n) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList n) {
     /* NOOP */
   }
   
diff --git a/solr/core/src/java/org/apache/solr/response/SchemaXmlResponseWriter.java b/solr/core/src/java/org/apache/solr/response/SchemaXmlResponseWriter.java
index 95a3bc7..a8cdc89 100644
--- a/solr/core/src/java/org/apache/solr/response/SchemaXmlResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/SchemaXmlResponseWriter.java
@@ -28,7 +28,7 @@ import org.apache.solr.request.SolrQueryRequest;
  */
 public class SchemaXmlResponseWriter implements QueryResponseWriter {
   @Override
-  public void init(NamedList n) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList n) {
     /* NOOP */
   }
 
diff --git a/solr/core/src/java/org/apache/solr/response/SchemaXmlWriter.java b/solr/core/src/java/org/apache/solr/response/SchemaXmlWriter.java
index 29ee3b2..0ea30fb 100644
--- a/solr/core/src/java/org/apache/solr/response/SchemaXmlWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/SchemaXmlWriter.java
@@ -68,6 +68,7 @@ public class SchemaXmlWriter extends TextResponseWriter {
     super(writer, req, rsp);
   }
 
+  @SuppressWarnings({"unchecked"})
   public void writeResponse() throws IOException {
     
     writer.write(XML_DECLARATION);
@@ -78,7 +79,7 @@ public class SchemaXmlWriter extends TextResponseWriter {
       writer.write(MANAGED_SCHEMA_DO_NOT_EDIT_WARNING);
     }
 
-    @SuppressWarnings("unchecked") Map<String,Object> schemaProperties
+    Map<String,Object> schemaProperties
         = (Map<String , Object>)rsp.getValues().get(IndexSchema.SCHEMA);
 
     openStartTag(IndexSchema.SCHEMA);
@@ -103,7 +104,7 @@ public class SchemaXmlWriter extends TextResponseWriter {
       } else if (schemaPropName.equals(IndexSchema.FIELD_TYPES)) {
         writeFieldTypes((List<SimpleOrderedMap<Object>>) val);
       } else if (schemaPropName.equals(IndexSchema.FIELDS)) {
-        @SuppressWarnings("unchecked") List<SimpleOrderedMap<Object>> fieldPropertiesList
+        List<SimpleOrderedMap<Object>> fieldPropertiesList
             = (List<SimpleOrderedMap<Object>>) val;
         for (SimpleOrderedMap<Object> fieldProperties : fieldPropertiesList) {
           openStartTag(IndexSchema.FIELD);
@@ -113,7 +114,7 @@ public class SchemaXmlWriter extends TextResponseWriter {
           closeStartTag(true);
         }
       } else if (schemaPropName.equals(IndexSchema.DYNAMIC_FIELDS)) {
-        @SuppressWarnings("unchecked") List<SimpleOrderedMap<Object>> dynamicFieldPropertiesList 
+        List<SimpleOrderedMap<Object>> dynamicFieldPropertiesList
             = (List<SimpleOrderedMap<Object>>) val;
         for (SimpleOrderedMap<Object> dynamicFieldProperties : dynamicFieldPropertiesList) {
           openStartTag(IndexSchema.DYNAMIC_FIELD);
@@ -124,7 +125,7 @@ public class SchemaXmlWriter extends TextResponseWriter {
           closeStartTag(true);
         }
       } else if (schemaPropName.equals(IndexSchema.COPY_FIELDS)) {
-        @SuppressWarnings("unchecked") List<SimpleOrderedMap<Object>> copyFieldPropertiesList
+        List<SimpleOrderedMap<Object>> copyFieldPropertiesList
             = (List<SimpleOrderedMap<Object>>) val;
         for (SimpleOrderedMap<Object> copyFieldProperties : copyFieldPropertiesList) {
           openStartTag(IndexSchema.COPY_FIELD);
@@ -142,6 +143,7 @@ public class SchemaXmlWriter extends TextResponseWriter {
     endTag(IndexSchema.SCHEMA);
   }
 
+  @SuppressWarnings({"unchecked"})
   private void writeFieldTypes(List<SimpleOrderedMap<Object>> fieldTypePropertiesList) throws IOException {
     for (SimpleOrderedMap<Object> fieldTypeProperties : fieldTypePropertiesList) {
       SimpleOrderedMap<Object> analyzerProperties = null;
@@ -199,6 +201,7 @@ public class SchemaXmlWriter extends TextResponseWriter {
     }
   }
 
+  @SuppressWarnings({"unchecked"})
   private void writeAnalyzer(SimpleOrderedMap<Object> analyzerProperties, String analyzerType) throws IOException {
     openStartTag(FieldType.ANALYZER);
     if (null != analyzerType) {
@@ -304,7 +307,7 @@ public class SchemaXmlWriter extends TextResponseWriter {
   }
 
   @Override
-  public void writeNamedList(String name, NamedList val) throws IOException {
+  public void writeNamedList(String name, @SuppressWarnings({"rawtypes"})NamedList val) throws IOException {
     // name is ignored - this method is only used for SimilarityFactory
     int sz = val.size();
     for (int i=0; i<sz; i++) {
@@ -338,7 +341,8 @@ public class SchemaXmlWriter extends TextResponseWriter {
 
 
   @Override
-  public void writeMap(String name, Map map, boolean excludeOuter, boolean isFirstVal) throws IOException {
+  @SuppressWarnings({"unchecked", "rawtypes"})
+  public void writeMap(String name, @SuppressWarnings({"rawtypes"})Map map, boolean excludeOuter, boolean isFirstVal) throws IOException {
     int sz = map.size();
 
     if (!excludeOuter) {
@@ -368,7 +372,7 @@ public class SchemaXmlWriter extends TextResponseWriter {
   }
 
   @Override
-  public void writeArray(String name, Iterator iter) throws IOException {
+  public void writeArray(String name, @SuppressWarnings({"rawtypes"})Iterator iter) throws IOException {
     if( iter.hasNext() ) {
       startTag("arr", name, false );
       incLevel();
diff --git a/solr/core/src/java/org/apache/solr/response/SmileResponseWriter.java b/solr/core/src/java/org/apache/solr/response/SmileResponseWriter.java
index 0ca6fa6..ed5a6dc 100644
--- a/solr/core/src/java/org/apache/solr/response/SmileResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/SmileResponseWriter.java
@@ -36,7 +36,7 @@ public class SmileResponseWriter extends BinaryResponseWriter {
   }
 
   @Override
-  public void init(NamedList args) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList args) {
 
   }
   //smile format is an equivalent of JSON format . So we extend JSONWriter and override the relevant methods
diff --git a/solr/core/src/java/org/apache/solr/response/SolrQueryResponse.java b/solr/core/src/java/org/apache/solr/response/SolrQueryResponse.java
index 378dee8..3224e74 100644
--- a/solr/core/src/java/org/apache/solr/response/SolrQueryResponse.java
+++ b/solr/core/src/java/org/apache/solr/response/SolrQueryResponse.java
@@ -119,6 +119,7 @@ public class SolrQueryResponse {
    * Gets data to be returned in this response
    * @see <a href="#returnable_data">Note on Returnable Data</a>
    */
+  @SuppressWarnings({"rawtypes"})
   public NamedList getValues() { return values; }
 
   /**
diff --git a/solr/core/src/java/org/apache/solr/response/TabularResponseWriter.java b/solr/core/src/java/org/apache/solr/response/TabularResponseWriter.java
index b22941c..2951a47 100644
--- a/solr/core/src/java/org/apache/solr/response/TabularResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/TabularResponseWriter.java
@@ -118,7 +118,7 @@ public abstract class TabularResponseWriter extends TextResponseWriter {
   }
 
   @Override
-  public void writeNamedList(String name, NamedList val) throws IOException {
+  public void writeNamedList(String name, @SuppressWarnings({"rawtypes"})NamedList val) throws IOException {
   }
 
   @Override
@@ -142,11 +142,11 @@ public abstract class TabularResponseWriter extends TextResponseWriter {
   }
 
   @Override
-  public void writeMap(String name, Map val, boolean excludeOuter, boolean isFirstVal) throws IOException {
+  public void writeMap(String name, @SuppressWarnings({"rawtypes"})Map val, boolean excludeOuter, boolean isFirstVal) throws IOException {
   }
 
   @Override
-  public void writeArray(String name, Iterator val) throws IOException {
+  public void writeArray(String name, @SuppressWarnings({"rawtypes"})Iterator val) throws IOException {
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/response/XMLResponseWriter.java b/solr/core/src/java/org/apache/solr/response/XMLResponseWriter.java
index 09e37e3..abab6ef 100644
--- a/solr/core/src/java/org/apache/solr/response/XMLResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/XMLResponseWriter.java
@@ -28,7 +28,7 @@ import org.apache.solr.request.SolrQueryRequest;
  */
 public class XMLResponseWriter implements QueryResponseWriter {
   @Override
-  public void init(NamedList n) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList n) {
     /* NOOP */
   }
 
diff --git a/solr/core/src/java/org/apache/solr/response/XMLWriter.java b/solr/core/src/java/org/apache/solr/response/XMLWriter.java
index 0f54b88..4e1f0a1 100644
--- a/solr/core/src/java/org/apache/solr/response/XMLWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/XMLWriter.java
@@ -248,7 +248,7 @@ public class XMLWriter extends TextResponseWriter {
   //
 
   @Override
-  public void writeNamedList(String name, NamedList val) throws IOException {
+  public void writeNamedList(String name, @SuppressWarnings({"rawtypes"})NamedList val) throws IOException {
     int sz = val.size();
     startTag("lst", name, sz<=0);
 
@@ -265,7 +265,8 @@ public class XMLWriter extends TextResponseWriter {
   }
 
   @Override
-  public void writeMap(String name, Map map, boolean excludeOuter, boolean isFirstVal) throws IOException {
+  @SuppressWarnings({"unchecked", "rawtypes"})
+  public void writeMap(String name, @SuppressWarnings({"rawtypes"})Map map, boolean excludeOuter, boolean isFirstVal) throws IOException {
     int sz = map.size();
 
     if (!excludeOuter) {
@@ -295,7 +296,7 @@ public class XMLWriter extends TextResponseWriter {
   }
 
   @Override
-  public void writeArray(String name, Iterator iter) throws IOException {
+  public void writeArray(String name, @SuppressWarnings({"rawtypes"})Iterator iter) throws IOException {
     if( iter.hasNext() ) {
       startTag("arr", name, false );
       incLevel();
diff --git a/solr/core/src/java/org/apache/solr/response/XSLTResponseWriter.java b/solr/core/src/java/org/apache/solr/response/XSLTResponseWriter.java
index 2b8de16..8bc9152 100644
--- a/solr/core/src/java/org/apache/solr/response/XSLTResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/XSLTResponseWriter.java
@@ -57,7 +57,7 @@ public class XSLTResponseWriter implements QueryResponseWriter {
   private static final XMLErrorLogger xmllog = new XMLErrorLogger(log);
   
   @Override
-  public void init(NamedList n) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList n) {
     final SolrParams p = n.toSolrParams();
       xsltCacheLifetimeSeconds = p.getInt(XSLT_CACHE_PARAM,XSLT_CACHE_DEFAULT);
       log.info("xsltCacheLifetimeSeconds={}", xsltCacheLifetimeSeconds);
diff --git a/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java b/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java
index 348d3ea..65d4d21 100644
--- a/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java
+++ b/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java
@@ -42,7 +42,7 @@ public class ExplainAugmenterFactory extends TransformerFactory
   protected Style defaultStyle = Style.text;
 
   @Override
-  public void init(NamedList args) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList args) {
     super.init(args);
     if( defaultUserArgs != null ) {
       defaultStyle = getStyle( defaultUserArgs );
diff --git a/solr/core/src/java/org/apache/solr/response/transform/GeoTransformerFactory.java b/solr/core/src/java/org/apache/solr/response/transform/GeoTransformerFactory.java
index 0b50254..74d9605 100644
--- a/solr/core/src/java/org/apache/solr/response/transform/GeoTransformerFactory.java
+++ b/solr/core/src/java/org/apache/solr/response/transform/GeoTransformerFactory.java
@@ -191,6 +191,7 @@ class GeoFieldUpdater {
     doc.remove(display);
     if(val != null) {
       if(val instanceof Iterable) {
+        @SuppressWarnings({"rawtypes"})
         Iterator iter = ((Iterable)val).iterator();
         while(iter.hasNext()) {
           addValue(doc, iter.next());
diff --git a/solr/core/src/java/org/apache/solr/response/transform/RawValueTransformerFactory.java b/solr/core/src/java/org/apache/solr/response/transform/RawValueTransformerFactory.java
index 55216e5..baa277b 100644
--- a/solr/core/src/java/org/apache/solr/response/transform/RawValueTransformerFactory.java
+++ b/solr/core/src/java/org/apache/solr/response/transform/RawValueTransformerFactory.java
@@ -49,7 +49,7 @@ public class RawValueTransformerFactory extends TransformerFactory
   }
   
   @Override
-  public void init(NamedList args) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList args) {
     super.init(args);
     if(defaultUserArgs!=null&&defaultUserArgs.startsWith("wt=")) {
       applyToWT = defaultUserArgs.substring(3);
@@ -113,6 +113,7 @@ public class RawValueTransformerFactory extends TransformerFactory
         return;
       }
       if(val instanceof Collection) {
+        @SuppressWarnings({"rawtypes"})
         Collection current = (Collection)val;
         ArrayList<WriteableStringValue> vals = new ArrayList<RawValueTransformerFactory.WriteableStringValue>();
         for(Object v : current) {
diff --git a/solr/core/src/java/org/apache/solr/response/transform/SubQueryAugmenterFactory.java b/solr/core/src/java/org/apache/solr/response/transform/SubQueryAugmenterFactory.java
index 331476c..dcee086 100644
--- a/solr/core/src/java/org/apache/solr/response/transform/SubQueryAugmenterFactory.java
+++ b/solr/core/src/java/org/apache/solr/response/transform/SubQueryAugmenterFactory.java
@@ -116,6 +116,7 @@ public class SubQueryAugmenterFactory extends TransformerFactory{
   @SuppressWarnings("unchecked")
   private void checkThereIsNoDupe(String field, Map<Object,Object> context) {
     // find a map
+    @SuppressWarnings({"rawtypes"})
     final Map conflictMap;
     final String conflictMapKey = getClass().getSimpleName();
     if (context.containsKey(conflictMapKey)) {
@@ -219,8 +220,8 @@ class SubQueryAugmenter extends DocTransformer {
       
       if (vals != null) {
         StringBuilder rez = new StringBuilder();
-        for (Iterator iterator = vals.iterator(); iterator.hasNext();) {
-          Object object = (Object) iterator.next();
+        for (@SuppressWarnings({"rawtypes"})Iterator iterator = vals.iterator(); iterator.hasNext();) {
+          Object object = iterator.next();
           rez.append(convertFieldValue(object));
           if (iterator.hasNext()) {
             rez.append(separator);
@@ -343,7 +344,7 @@ class SubQueryAugmenter extends DocTransformer {
       QueryResponse response = 
           SolrRequestInfoSuspender.doInSuspension(subQuery);
 
-      final SolrDocumentList docList = (SolrDocumentList) response.getResults();
+      final SolrDocumentList docList = response.getResults();
 
       doc.setField(getName(), new Result(docList));
 
diff --git a/solr/core/src/java/org/apache/solr/response/transform/TransformerFactory.java b/solr/core/src/java/org/apache/solr/response/transform/TransformerFactory.java
index acdb96a..ed8a930 100644
--- a/solr/core/src/java/org/apache/solr/response/transform/TransformerFactory.java
+++ b/solr/core/src/java/org/apache/solr/response/transform/TransformerFactory.java
@@ -34,7 +34,7 @@ public abstract class TransformerFactory implements NamedListInitializedPlugin
   protected String defaultUserArgs = null;
 
   @Override
-  public void init(NamedList args) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList args) {
     defaultUserArgs = (String)args.get( "args" );
   }
 
diff --git a/solr/core/src/java/org/apache/solr/response/transform/ValueAugmenterFactory.java b/solr/core/src/java/org/apache/solr/response/transform/ValueAugmenterFactory.java
index 178fae1..0cc2476 100644
--- a/solr/core/src/java/org/apache/solr/response/transform/ValueAugmenterFactory.java
+++ b/solr/core/src/java/org/apache/solr/response/transform/ValueAugmenterFactory.java
@@ -33,7 +33,7 @@ public class ValueAugmenterFactory extends TransformerFactory {
   protected Object defaultValue = null;
 
   @Override
-  public void init(NamedList args) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList args) {
     value = args.get("value");
     if (value == null) {
       defaultValue = args.get("defaultValue");
diff --git a/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java b/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java
index 8fcf56f..45426f27 100644
--- a/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java
+++ b/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java
@@ -72,6 +72,7 @@ public class ValueSourceAugmenter extends DocTransformer
     }
   }
 
+  @SuppressWarnings({"rawtypes"})
   Map fcontext;
   SolrIndexSearcher searcher;
   List<LeafReaderContext> readerContexts;
diff --git a/solr/core/src/java/org/apache/solr/schema/BoolField.java b/solr/core/src/java/org/apache/solr/schema/BoolField.java
index 5fb2d85..189497d 100644
--- a/solr/core/src/java/org/apache/solr/schema/BoolField.java
+++ b/solr/core/src/java/org/apache/solr/schema/BoolField.java
@@ -232,7 +232,7 @@ class BoolFieldSource extends ValueSource {
 
 
   @Override
-  public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException {
+    public FunctionValues getValues(@SuppressWarnings({"rawtypes"})Map context, LeafReaderContext readerContext) throws IOException {
     final SortedDocValues sindex = DocValues.getSorted(readerContext.reader(), field);
 
     // figure out what ord maps to true
diff --git a/solr/core/src/java/org/apache/solr/schema/ClassicIndexSchemaFactory.java b/solr/core/src/java/org/apache/solr/schema/ClassicIndexSchemaFactory.java
index 5bca9c4..8e31fa5 100644
--- a/solr/core/src/java/org/apache/solr/schema/ClassicIndexSchemaFactory.java
+++ b/solr/core/src/java/org/apache/solr/schema/ClassicIndexSchemaFactory.java
@@ -27,7 +27,7 @@ public class ClassicIndexSchemaFactory extends IndexSchemaFactory {
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @Override
-  public void init(NamedList args) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList args) {
     // no arguments expected
     if (args.size() > 0) {
       String msg = "Unexpected arg(s): " + args;
diff --git a/solr/core/src/java/org/apache/solr/schema/CurrencyFieldType.java b/solr/core/src/java/org/apache/solr/schema/CurrencyFieldType.java
index c9f6288..06c75fb 100644
--- a/solr/core/src/java/org/apache/solr/schema/CurrencyFieldType.java
+++ b/solr/core/src/java/org/apache/solr/schema/CurrencyFieldType.java
@@ -402,7 +402,7 @@ public class CurrencyFieldType extends FieldType implements SchemaAware, Resourc
     }
 
     @Override
-    public FunctionValues getValues(Map context, LeafReaderContext reader)
+    public FunctionValues getValues(@SuppressWarnings({"rawtypes"})Map context, LeafReaderContext reader)
         throws IOException {
       final FunctionValues amounts = source.getValues(context, reader);
       // the target digits & currency of our source, 
@@ -514,7 +514,7 @@ public class CurrencyFieldType extends FieldType implements SchemaAware, Resourc
     public Currency getTargetCurrency() { return targetCurrency; }
 
     @Override
-    public FunctionValues getValues(Map context, LeafReaderContext reader) throws IOException {
+    public FunctionValues getValues(@SuppressWarnings({"rawtypes"})Map context, LeafReaderContext reader) throws IOException {
       final FunctionValues amounts = amountValues.getValues(context, reader);
       final FunctionValues currencies = currencyValues.getValues(context, reader);
 
diff --git a/solr/core/src/java/org/apache/solr/schema/ExternalFileFieldReloader.java b/solr/core/src/java/org/apache/solr/schema/ExternalFileFieldReloader.java
index 26aef9c..8c23135 100644
--- a/solr/core/src/java/org/apache/solr/schema/ExternalFileFieldReloader.java
+++ b/solr/core/src/java/org/apache/solr/schema/ExternalFileFieldReloader.java
@@ -61,7 +61,7 @@ public class ExternalFileFieldReloader extends AbstractSolrEventListener {
   }
 
   @Override
-  public void init(NamedList args) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList args) {
     cacheFieldSources(getCore().getLatestSchema());
   }
 
diff --git a/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java b/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java
index 3e4c88d..56fdec6 100644
--- a/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java
+++ b/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java
@@ -253,6 +253,7 @@ public final class FieldTypePluginLoader
       ("[schema.xml] analyzer/charFilter", CharFilterFactory.class, false, false) {
 
       @Override
+      @SuppressWarnings({"rawtypes"})
       protected CharFilterFactory create(SolrResourceLoader loader, String name, String className, Node node) throws Exception {
         final Map<String,String> params = DOMUtil.toMap(node.getAttributes());
         String configuredVersion = params.remove(LUCENE_MATCH_VERSION_PARAM);
@@ -289,6 +290,7 @@ public final class FieldTypePluginLoader
       ("[schema.xml] analyzer/tokenizer", TokenizerFactory.class, false, false) {
       
       @Override
+      @SuppressWarnings({"rawtypes"})
       protected TokenizerFactory create(SolrResourceLoader loader, String name, String className, Node node) throws Exception {
         final Map<String,String> params = DOMUtil.toMap(node.getAttributes());
         String configuredVersion = params.remove(LUCENE_MATCH_VERSION_PARAM);
@@ -329,6 +331,7 @@ public final class FieldTypePluginLoader
       new AbstractPluginLoader<TokenFilterFactory>("[schema.xml] analyzer/filter", TokenFilterFactory.class, false, false)
     {
       @Override
+      @SuppressWarnings({"rawtypes"})
       protected TokenFilterFactory create(SolrResourceLoader loader, String name, String className, Node node) throws Exception {
         final Map<String,String> params = DOMUtil.toMap(node.getAttributes());
         String configuredVersion = params.remove(LUCENE_MATCH_VERSION_PARAM);
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index 7fac59b..bd1827d 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -146,6 +146,7 @@ public class IndexSchema {
 
   public DynamicField[] getDynamicFields() { return dynamicFields; }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   protected Cache<String, SchemaField> dynamicFieldCache = new ConcurrentLRUCache(10000, 8000, 9000,100, false,false, null);
 
   private Analyzer indexAnalyzer;
@@ -1385,6 +1386,7 @@ public class IndexSchema {
   /**
    * Get a map of property name -&gt; value for the whole schema.
    */
+  @SuppressWarnings({"unchecked", "rawtypes"})
   public Map getNamedPropertyValues() {
     return getNamedPropertyValues(null, new MapSolrParams(Collections.EMPTY_MAP));
   }
@@ -1413,6 +1415,7 @@ public class IndexSchema {
           .map(it -> it.getNamedPropertyValues(sp.showDefaults))
           .collect(Collectors.toList())),
 
+      @SuppressWarnings({"unchecked", "rawtypes"})
       FIELDS(IndexSchema.FIELDS, sp -> {
         List<SimpleOrderedMap> result = (sp.requestedFields != null ? sp.requestedFields : new TreeSet<>(sp.schema.fields.keySet()))
             .stream()
@@ -1465,6 +1468,7 @@ public class IndexSchema {
       requestedFields = readMultiVals(CommonParams.FL);
 
     }
+    @SuppressWarnings({"rawtypes"})
     public Collection applyDynamic(){
       return (Collection) Handler.DYNAMIC_FIELDS.fun.apply(this);
     }
@@ -1484,6 +1488,7 @@ public class IndexSchema {
     }
 
 
+    @SuppressWarnings({"rawtypes"})
     SimpleOrderedMap getProperties(SchemaField sf) {
       SimpleOrderedMap<Object> result = sf.getNamedPropertyValues(showDefaults);
       if (schema.isDynamicField(sf.name)) {
diff --git a/solr/core/src/java/org/apache/solr/schema/LatLonPointSpatialField.java b/solr/core/src/java/org/apache/solr/schema/LatLonPointSpatialField.java
index 3865027..d2d1212 100644
--- a/solr/core/src/java/org/apache/solr/schema/LatLonPointSpatialField.java
+++ b/solr/core/src/java/org/apache/solr/schema/LatLonPointSpatialField.java
@@ -58,6 +58,7 @@ import static java.math.RoundingMode.CEILING;
  * coordinates in lat/lon decimal degrees.  The accuracy is about a centimeter (1.042cm).
  */
 // TODO once LLP & LLDVF are out of Lucene Sandbox, we should be able to javadoc reference them.
+@SuppressWarnings({"rawtypes"})
 public class LatLonPointSpatialField extends AbstractSpatialFieldType implements SchemaAware {
   private IndexSchema schema;
 
diff --git a/solr/core/src/java/org/apache/solr/schema/LatLonType.java b/solr/core/src/java/org/apache/solr/schema/LatLonType.java
index ecebd13..f49523e 100644
--- a/solr/core/src/java/org/apache/solr/schema/LatLonType.java
+++ b/solr/core/src/java/org/apache/solr/schema/LatLonType.java
@@ -318,7 +318,9 @@ class SpatialDistanceQuery extends ExtendedQueryBase implements PostFilter {
 
   protected class SpatialWeight extends ConstantScoreWeight {
     protected IndexSearcher searcher;
+    @SuppressWarnings({"rawtypes"})
     protected Map latContext;
+    @SuppressWarnings({"rawtypes"})
     protected Map lonContext;
 
     public SpatialWeight(IndexSearcher searcher, float boost) throws IOException {
diff --git a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
index 35895e4..7f114d9 100644
--- a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
@@ -314,6 +314,7 @@ public final class ManagedIndexSchema extends IndexSchema {
     return activeReplicaCoreUrls;
   }
 
+  @SuppressWarnings({"rawtypes"})
   private static class GetZkSchemaVersionCallable extends SolrRequest implements Callable<Integer> {
 
     private String coreUrl;
@@ -485,6 +486,7 @@ public final class ManagedIndexSchema extends IndexSchema {
   }
 
   @Override
+  @SuppressWarnings({"unchecked"})
   public ManagedIndexSchema replaceField
       (String fieldName, FieldType replacementFieldType, Map<String,?> replacementArgs) {
     ManagedIndexSchema newSchema;
@@ -690,6 +692,7 @@ public final class ManagedIndexSchema extends IndexSchema {
   }
 
   @Override
+  @SuppressWarnings({"unchecked"})
   public ManagedIndexSchema replaceDynamicField
     (String fieldNamePattern, FieldType replacementFieldType, Map<String,?> replacementArgs) {
     ManagedIndexSchema newSchema;
@@ -809,6 +812,7 @@ public final class ManagedIndexSchema extends IndexSchema {
   }
   
   @Override
+  @SuppressWarnings({"unchecked"})
   public ManagedIndexSchema deleteCopyFields(Map<String,Collection<String>> copyFields) {
     ManagedIndexSchema newSchema;
     if (isMutable) {
@@ -956,6 +960,7 @@ public final class ManagedIndexSchema extends IndexSchema {
 
     // we shallow copied fieldTypes, but since we're changing them, we need to do a true
     // deep copy before adding the new field types
+    @SuppressWarnings({"unchecked"})
     HashMap<String,FieldType> clone =
         (HashMap<String,FieldType>)((HashMap<String,FieldType>)newSchema.fieldTypes).clone();
     newSchema.fieldTypes = clone;
@@ -1044,6 +1049,7 @@ public final class ManagedIndexSchema extends IndexSchema {
   }
 
   @Override
+  @SuppressWarnings({"unchecked"})
   public ManagedIndexSchema replaceFieldType(String typeName, String replacementClassName, Map<String,Object> replacementArgs) {
     ManagedIndexSchema newSchema;
     if (isMutable) {
diff --git a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchemaFactory.java b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchemaFactory.java
index 300bd97..ef5df42 100644
--- a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchemaFactory.java
+++ b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchemaFactory.java
@@ -67,7 +67,7 @@ public class ManagedIndexSchemaFactory extends IndexSchemaFactory implements Sol
   private boolean shouldUpgrade = false;
 
   @Override
-  public void init(NamedList args) {
+  public void init(@SuppressWarnings({"rawtypes"})NamedList args) {
     SolrParams params = args.toSolrParams();
     isMutable = params.getBool("mutable", true);
     args.remove("mutable");
diff --git a/solr/core/src/java/org/apache/solr/schema/OpenExchangeRatesOrgProvider.java b/solr/core/src/java/org/apache/solr/schema/OpenExchangeRatesOrgProvider.java
index 8492b7a..d0a204b 100644
--- a/solr/core/src/java/org/apache/solr/schema/OpenExchangeRatesOrgProvider.java
+++ b/solr/core/src/java/org/apache/solr/schema/OpenExchangeRatesOrgProvider.java
@@ -88,8 +88,8 @@ public class OpenExchangeRatesOrgProvider implements ExchangeRateProvider {
 
     reloadIfExpired();
 
-    Double source = (Double) rates.getRates().get(sourceCurrencyCode);
-    Double target = (Double) rates.getRates().get(targetCurrencyCode);
+    Double source = rates.getRates().get(sourceCurrencyCode);
+    Double target = rates.getRates().get(targetCurrencyCode);
 
     if (source == null || target == null) {
       throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, 
diff --git a/solr/core/src/java/org/apache/solr/schema/RandomSortField.java b/solr/core/src/java/org/apache/solr/schema/RandomSortField.java
index 44bb420..1a8ec24 100644
--- a/solr/core/src/java/org/apache/solr/schema/RandomSortField.java
+++ b/solr/core/src/java/org/apache/solr/schema/RandomSortField.java
@@ -173,7 +173,7 @@ public class RandomSortField extends FieldType {
     }
 
     @Override
-    public FunctionValues getValues(Map context, final LeafReaderContext readerContext) throws IOException {
+    public FunctionValues getValues(@SuppressWarnings({"rawtypes"})Map context, final LeafReaderContext readerContext) throws IOException {
       return new IntDocValues(this) {
           private final int seed = getSeed(field, readerContext);
           @Override
diff --git a/solr/core/src/java/org/apache/solr/schema/RptWithGeometrySpatialField.java b/solr/core/src/java/org/apache/solr/schema/RptWithGeometrySpatialField.java
index abb3f0d..5ad0b5d 100644
--- a/solr/core/src/java/org/apache/solr/schema/RptWithGeometrySpatialField.java
+++ b/solr/core/src/java/org/apache/solr/schema/RptWithGeometrySpatialField.java
@@ -145,6 +145,7 @@ public class RptWithGeometrySpatialField extends AbstractSpatialFieldType<Compos
     public ShapeValues getValues(LeafReaderContext readerContext) throws IOException {
       final ShapeValues targetFuncValues = targetValueSource.getValues(readerContext);
       // The key is a pair of leaf reader with a docId relative to that reader. The value is a Map from field to Shape.
+      @SuppressWarnings({"unchecked"})
       final SolrCache<PerSegCacheKey,Shape> cache =
           SolrRequestInfo.getRequestInfo().getReq().getSearcher().getCache(CACHE_KEY_PREFIX + fieldName);
       if (cache == null) {
diff --git a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
index 617a8ad..2402e15 100644
--- a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
+++ b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
@@ -82,6 +82,7 @@ public class SchemaManager {
    * as possible instead of failing at the first error it encounters
    * @return List of errors. If the List is empty then the operation was successful.
    */
+  @SuppressWarnings({"rawtypes"})
   public List performOperations() throws Exception {
     List<CommandOperation> ops = req.getCommands(false);
     List errs = CommandOperation.captureErrors(ops);
@@ -95,6 +96,7 @@ public class SchemaManager {
     }
   }
 
+  @SuppressWarnings({"rawtypes"})
   private List doOperations(List<CommandOperation> operations) throws InterruptedException, IOException, KeeperException {
     TimeOut timeOut = new TimeOut(timeout, TimeUnit.SECONDS, TimeSource.NANO_TIME);
     SolrCore core = req.getCore();
diff --git a/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java b/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java
index 5326a76..002ac3a 100644
--- a/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java
+++ b/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java
@@ -36,7 +36,7 @@ public class StrFieldSource extends FieldCacheSource {
   }
 
   @Override
-  public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException {
+  public FunctionValues getValues(@SuppressWarnings({"rawtypes"})Map context, LeafReaderContext readerContext) throws IOException {
     return new DocTermsIndexDocValues(this, readerContext, field) {
 
       @Override
diff --git a/solr/core/src/java/org/apache/solr/schema/TrieDoubleField.java b/solr/core/src/java/org/apache/solr/schema/TrieDoubleField.java
index 8e622c6..aa6b936 100644
--- a/solr/core/src/java/org/apache/solr/schema/TrieDoubleField.java
+++ b/solr/core/src/java/org/apache/solr/schema/TrieDoubleField.java
@@ -70,7 +70,7 @@ public class TrieDoubleField extends TrieField implements DoubleValueFieldType {
     
     return new SortedSetFieldSource(f.getName(), choice) {
       @Override
-      public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException {
+      public FunctionValues getValues(@SuppressWarnings({"rawtypes"})Map context, LeafReaderContext readerContext) throws IOException {
         SortedSetFieldSource thisAsSortedSetFieldSource = this; // needed for nested anon class ref
         
         SortedSetDocValues sortedSet = DocValues.getSortedSet(readerContext.reader(), field);
diff --git a/solr/core/src/java/org/apache/solr/schema/TrieFloatField.java b/solr/core/src/java/org/apache/solr/schema/TrieFloatField.java
index b789564..00f9378 100644
--- a/solr/core/src/java/org/apache/solr/schema/TrieFloatField.java
+++ b/solr/core/src/java/org/apache/solr/schema/TrieFloatField.java
@@ -70,7 +70,7 @@ public class TrieFloatField extends TrieField implements FloatValueFieldType {
     
     return new SortedSetFieldSource(f.getName(), choice) {
       @Override
-      public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException {
+      public FunctionValues getValues(@SuppressWarnings({"rawtypes"})Map context, LeafReaderContext readerContext) throws IOException {
         SortedSetFieldSource thisAsSortedSetFieldSource = this; // needed for nested anon class ref
         
         SortedSetDocValues sortedSet = DocValues.getSortedSet(readerContext.reader(), field);
diff --git a/solr/core/src/java/org/apache/solr/schema/TrieIntField.java b/solr/core/src/java/org/apache/solr/schema/TrieIntField.java
index 8acb66d..c4692e3 100644
--- a/solr/core/src/java/org/apache/solr/schema/TrieIntField.java
+++ b/solr/core/src/java/org/apache/solr/schema/TrieIntField.java
@@ -68,7 +68,7 @@ public class TrieIntField extends TrieField implements IntValueFieldType {
     
     return new SortedSetFieldSource(f.getName(), choice) {
       @Override
-      public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException {
+      public FunctionValues getValues(@SuppressWarnings({"rawtypes"})Map context, LeafReaderContext readerContext) throws IOException {
         SortedSetFieldSource thisAsSortedSetFieldSource = this; // needed for nested anon class ref
         
         SortedSetDocValues sortedSet = DocValues.getSortedSet(readerContext.reader(), field);
diff --git a/solr/core/src/java/org/apache/solr/schema/TrieLongField.java b/solr/core/src/java/org/apache/solr/schema/TrieLongField.java
index bf6d393..2d60cae 100644
--- a/solr/core/src/java/org/apache/solr/schema/TrieLongField.java
+++ b/solr/core/src/java/org/apache/solr/schema/TrieLongField.java
@@ -68,7 +68,7 @@ public class TrieLongField extends TrieField implements LongValueFieldType {
     
     return new SortedSetFieldSource(f.getName(), choice) {
       @Override
-      public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException {
+      public FunctionValues getValues(@SuppressWarnings({"rawtypes"})Map context, LeafReaderContext readerContext) throws IOException {
         SortedSetFieldSource thisAsSortedSetFieldSource = this; // needed for nested anon class ref
         
         SortedSetDocValues sortedSet = DocValues.getSortedSet(readerContext.reader(), field);
diff --git a/solr/core/src/java/org/apache/solr/security/AuditLoggerPlugin.java b/solr/core/src/java/org/apache/solr/security/AuditLoggerPlugin.java
index 3e7c0c2..894d2af 100644
--- a/solr/core/src/java/org/apache/solr/security/AuditLoggerPlugin.java
+++ b/solr/core/src/java/org/apache/solr/security/AuditLoggerPlugin.java
@@ -100,6 +100,7 @@ public abstract class AuditLoggerPlugin implements Closeable, Runnable, SolrInfo
    * This method removes parameters from config object after consuming, so subclasses can check for config errors.
    * @param pluginConfig the config for the plugin
    */
+  @SuppressWarnings({"unchecked"})
   public void init(Map<String, Object> pluginConfig) {
     formatter = new JSONAuditEventFormatter();
     if (pluginConfig.containsKey(PARAM_EVENT_TYPES)) {
@@ -352,6 +353,7 @@ public abstract class AuditLoggerPlugin implements Closeable, Runnable, SolrInfo
   /**
    * Set of rules for when audit logging should be muted.
    */
+  @SuppressWarnings({"unchecked", "rawtypes"})
   private class MuteRules {
     private List<List<MuteRule>> rules;
 
diff --git a/solr/core/src/java/org/apache/solr/security/AuthorizationContext.java b/solr/core/src/java/org/apache/solr/security/AuthorizationContext.java
index 41236ff..a3545dc 100644
--- a/solr/core/src/java/org/apache/solr/security/AuthorizationContext.java
+++ b/solr/core/src/java/org/apache/solr/security/AuthorizationContext.java
@@ -46,6 +46,7 @@ public abstract class AuthorizationContext {
 
   public abstract String getHttpHeader(String header);
   
+  @SuppressWarnings({"rawtypes"})
   public abstract Enumeration getHeaderNames();
 
   public abstract String getRemoteAddr();
diff --git a/solr/core/src/java/org/apache/solr/security/AutorizationEditOperation.java b/solr/core/src/java/org/apache/solr/security/AutorizationEditOperation.java
index fc8b877..a080d72 100644
--- a/solr/core/src/java/org/apache/solr/security/AutorizationEditOperation.java
+++ b/solr/core/src/java/org/apache/solr/security/AutorizationEditOperation.java
@@ -54,6 +54,7 @@ enum AutorizationEditOperation {
   },
   SET_PERMISSION("set-permission") {
     @Override
+    @SuppressWarnings({"unchecked"})
     public Map<String, Object> edit(Map<String, Object> latestConf, CommandOperation op) {
       Integer index = op.getInt("index", null);
       Integer beforeIdx = op.getInt("before",null);
@@ -76,12 +77,15 @@ enum AutorizationEditOperation {
         return null;
       }
       if(op.hasError()) return null;
+      @SuppressWarnings({"rawtypes"})
       List<Map> permissions = getListValue(latestConf, "permissions");
       setIndex(permissions);
+      @SuppressWarnings({"rawtypes"})
       List<Map> permissionsCopy = new ArrayList<>();
       boolean beforeSatisfied = beforeIdx == null;
       boolean indexSatisfied = index == null;
       for (int i = 0; i < permissions.size(); i++) {
+        @SuppressWarnings({"rawtypes"})
         Map perm = permissions.get(i);
         Integer thisIdx = (Integer) perm.get("index");
         if (thisIdx.equals(beforeIdx)) {
@@ -115,6 +119,7 @@ enum AutorizationEditOperation {
   },
   UPDATE_PERMISSION("update-permission") {
     @Override
+    @SuppressWarnings({"unchecked", "rawtypes"})
     public Map<String, Object> edit(Map<String, Object> latestConf, CommandOperation op) {
       Integer index = op.getInt("index");
       if (op.hasError()) return null;
@@ -134,11 +139,14 @@ enum AutorizationEditOperation {
   },
   DELETE_PERMISSION("delete-permission") {
     @Override
+    @SuppressWarnings({"unchecked"})
     public Map<String, Object> edit(Map<String, Object> latestConf, CommandOperation op) {
       Integer id = op.getInt("");
       if(op.hasError()) return null;
+      @SuppressWarnings({"rawtypes"})
       List<Map> p = getListValue(latestConf, "permissions");
       setIndex(p);
+      @SuppressWarnings({"rawtypes"})
       List<Map> c = p.stream().filter(map -> !id.equals(map.get("index"))).collect(Collectors.toList());
       if(c.size() == p.size()){
         op.addError("No such index :"+ id);
@@ -166,6 +174,7 @@ enum AutorizationEditOperation {
     return null;
   }
 
+  @SuppressWarnings({"unchecked", "rawtypes"})
   static void setIndex(List<Map> permissionsCopy) {
     AtomicInteger counter = new AtomicInteger(0);
     permissionsCopy.stream().forEach(map -> map.put("index", counter.incrementAndGet()));
diff --git a/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java b/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
index 770cedf..377cdb3 100644
--- a/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
+++ b/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
@@ -198,7 +198,7 @@ public class BasicAuthPlugin extends AuthenticationPlugin implements ConfigEdita
    * @return map of headers
    */
   private Map<String, String> getPromptHeaders(boolean isAjaxRequest) {
-    Map<String,String> headers = new HashMap(authenticationProvider.getPromptHeaders());
+    Map<String,String> headers = new HashMap<>(authenticationProvider.getPromptHeaders());
     if (isAjaxRequest && headers.containsKey(HttpHeaders.WWW_AUTHENTICATE) 
         && headers.get(HttpHeaders.WWW_AUTHENTICATE).startsWith("Basic ")) {
       headers.put(HttpHeaders.WWW_AUTHENTICATE, "x" + headers.get(HttpHeaders.WWW_AUTHENTICATE));
diff --git a/solr/core/src/java/org/apache/solr/security/KerberosPlugin.java b/solr/core/src/java/org/apache/solr/security/KerberosPlugin.java
index 381419f..9b86954 100644
--- a/solr/core/src/java/org/apache/solr/security/KerberosPlugin.java
+++ b/solr/core/src/java/org/apache/solr/security/KerberosPlugin.java
@@ -101,7 +101,7 @@ public class KerberosPlugin extends AuthenticationPlugin implements HttpClientBu
 
   @VisibleForTesting
   protected FilterConfig getInitFilterConfig(Map<String, Object> pluginConfig, boolean skipKerberosChecking) {
-    Map<String, String> params = new HashMap();
+    Map<String, String> params = new HashMap<>();
     params.put("type", "kerberos");
     putParam(params, "kerberos.name.rules", NAME_RULES_PARAM, "DEFAULT");
     putParam(params, "token.valid", TOKEN_VALID_PARAM, "30");
@@ -162,7 +162,7 @@ public class KerberosPlugin extends AuthenticationPlugin implements HttpClientBu
     }
 
     // check impersonator config
-    for (Enumeration e = System.getProperties().propertyNames(); e.hasMoreElements();) {
+    for (@SuppressWarnings({"rawtypes"})Enumeration e = System.getProperties().propertyNames(); e.hasMoreElements();) {
       String key = e.nextElement().toString();
       if (key.startsWith(IMPERSONATOR_PREFIX)) {
         if (!delegationTokenEnabled) {
diff --git a/solr/core/src/java/org/apache/solr/security/PKIAuthenticationPlugin.java b/solr/core/src/java/org/apache/solr/security/PKIAuthenticationPlugin.java
index 527c04a..4c35ff4 100644
--- a/solr/core/src/java/org/apache/solr/security/PKIAuthenticationPlugin.java
+++ b/solr/core/src/java/org/apache/solr/security/PKIAuthenticationPlugin.java
@@ -206,6 +206,7 @@ public class PKIAuthenticationPlugin extends AuthenticationPlugin implements Htt
           .execute(new HttpGet(uri), HttpClientUtil.createNewHttpClientRequestContext());
       entity  = rsp.getEntity();
       byte[] bytes = EntityUtils.toByteArray(entity);
+      @SuppressWarnings({"rawtypes"})
       Map m = (Map) Utils.fromJSON(bytes);
       String key = (String) m.get("key");
       if (key == null) {
diff --git a/solr/core/src/java/org/apache/solr/security/Permission.java b/solr/core/src/java/org/apache/solr/security/Permission.java
index 33ae8f7..5c47902 100644
--- a/solr/core/src/java/org/apache/solr/security/Permission.java
+++ b/solr/core/src/java/org/apache/solr/security/Permission.java
@@ -41,12 +41,14 @@ class Permission {
   Set<String> path, role, collections, method;
   Map<String, Function<String[], Boolean>> params;
   PermissionNameProvider.Name wellknownName;
+  @SuppressWarnings({"rawtypes"})
   Map originalConfig;
 
   private Permission() {
   }
 
-  static Permission load(Map m) {
+  @SuppressWarnings({"unchecked", "rawtypes"})
+  static Permission load(@SuppressWarnings({"rawtypes"})Map m) {
     Permission p = new Permission();
     p.originalConfig = new LinkedHashMap<>(m);
     String name = (String) m.get(NAME);
@@ -106,7 +108,7 @@ class Permission {
   /**
    * This checks for the defaults available other rules for the keys
    */
-  private static Set<String> readSetSmart(String permissionName, Map m, String key) {
+  private static Set<String> readSetSmart(String permissionName, @SuppressWarnings({"rawtypes"})Map m, String key) {
     if(PermissionNameProvider.values.containsKey(permissionName) && !m.containsKey(key) && "collection".equals(key)) {
       return PermissionNameProvider.Name.get(permissionName).collName;
     }
@@ -126,7 +128,7 @@ class Permission {
    * @param m   the map from which to lookup
    * @param key the key with which to do lookup
    */
-  static Set<String> readValueAsSet(Map m, String key) {
+  static Set<String> readValueAsSet(@SuppressWarnings({"rawtypes"})Map m, String key) {
     Set<String> result = new HashSet<>();
     Object val = m.get(key);
     if (val == null) {
@@ -138,6 +140,7 @@ class Permission {
       return null;
     }
     if (val instanceof Collection) {
+      @SuppressWarnings({"rawtypes"})
       Collection list = (Collection) val;
       for (Object o : list) result.add(String.valueOf(o));
     } else if (val instanceof String) {
diff --git a/solr/core/src/java/org/apache/solr/security/PermissionNameProvider.java b/solr/core/src/java/org/apache/solr/security/PermissionNameProvider.java
index ef6ae26..618a572 100644
--- a/solr/core/src/java/org/apache/solr/security/PermissionNameProvider.java
+++ b/solr/core/src/java/org/apache/solr/security/PermissionNameProvider.java
@@ -62,6 +62,7 @@ public interface PermissionNameProvider {
     final String name;
     final Set<String> collName;
 
+    @SuppressWarnings({"unchecked"})
     Name(String s, Object collName) {
       name = s;
       this.collName = collName instanceof Set? (Set<String>)collName : singleton((String)collName);
diff --git a/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPlugin.java b/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPlugin.java
index ef012c0..78af040 100644
--- a/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPlugin.java
+++ b/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPlugin.java
@@ -41,6 +41,7 @@ public class RuleBasedAuthorizationPlugin extends RuleBasedAuthorizationPluginBa
     super.init(initInfo);
     Map<String, Object> map = getMapValue(initInfo, "user-role");
     for (Object o : map.entrySet()) {
+      @SuppressWarnings({"rawtypes"})
       Map.Entry e = (Map.Entry) o;
       String roleName = (String) e.getKey();
       usersVsRoles.put(roleName, Permission.readValueAsSet(map, roleName));
diff --git a/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPluginBase.java b/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPluginBase.java
index 885fc70..8a485f7 100644
--- a/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPluginBase.java
+++ b/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPluginBase.java
@@ -259,10 +259,12 @@ public abstract class RuleBasedAuthorizationPluginBase implements AuthorizationP
   }
 
   @Override
-  public void init(Map<String, Object> initInfo) {
+  @SuppressWarnings({"unchecked"})
+  public void init(@SuppressWarnings({"rawtypes"})Map<String, Object> initInfo) {
     mapping.put(null, new WildCardSupportMap());
+    @SuppressWarnings({"rawtypes"})
     List<Map> perms = getListValue(initInfo, "permissions");
-    for (Map o : perms) {
+    for (@SuppressWarnings({"rawtypes"})Map o : perms) {
       Permission p;
       try {
         p = Permission.load(o);
diff --git a/solr/core/src/java/org/apache/solr/security/Sha256AuthenticationProvider.java b/solr/core/src/java/org/apache/solr/security/Sha256AuthenticationProvider.java
index 5bf95e6..9654874 100644
--- a/solr/core/src/java/org/apache/solr/security/Sha256AuthenticationProvider.java
+++ b/solr/core/src/java/org/apache/solr/security/Sha256AuthenticationProvider.java
@@ -47,7 +47,8 @@ public class Sha256AuthenticationProvider implements ConfigEditablePlugin,  Basi
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
 
-  static void putUser(String user, String pwd, Map credentials) {
+  @SuppressWarnings({"unchecked"})
+  static void putUser(String user, String pwd, @SuppressWarnings({"rawtypes"})Map credentials) {
     if (user == null || pwd == null) return;
     String val = getSaltedHashedValue(pwd);
     credentials.put(user, val);
@@ -72,6 +73,7 @@ public class Sha256AuthenticationProvider implements ConfigEditablePlugin,  Basi
     
     promptHeader = Collections.unmodifiableMap(Collections.singletonMap("WWW-Authenticate", "Basic realm=\"" + realm + "\""));
     credentials = new LinkedHashMap<>();
+    @SuppressWarnings({"unchecked"})
     Map<String,String> users = (Map<String,String>) pluginConfig.get("credentials");
     if (users == null) {
       log.debug("No users configured yet");
@@ -128,6 +130,7 @@ public class Sha256AuthenticationProvider implements ConfigEditablePlugin,  Basi
   }
 
   @Override
+  @SuppressWarnings({"unchecked"})
   public Map<String, Object> edit(Map<String, Object> latestConf, List<CommandOperation> commands) {
     for (CommandOperation cmd : commands) {
       if (!supported_ops.contains(cmd.name)) {
@@ -137,6 +140,7 @@ public class Sha256AuthenticationProvider implements ConfigEditablePlugin,  Basi
       if (cmd.hasError()) return null;
       if ("delete-user".equals(cmd.name)) {
         List<String> names = cmd.getStrs("");
+        @SuppressWarnings({"rawtypes"})
         Map map = (Map) latestConf.get("credentials");
         if (map == null || !map.keySet().containsAll(names)) {
           cmd.addError("No such user(s) " +names );
@@ -146,9 +150,12 @@ public class Sha256AuthenticationProvider implements ConfigEditablePlugin,  Basi
         return latestConf;
       }
       if ("set-user".equals(cmd.name) ) {
+        @SuppressWarnings({"rawtypes"})
         Map map = getMapValue(latestConf, "credentials");
+        @SuppressWarnings({"rawtypes"})
         Map kv = cmd.getDataMap();
         for (Object o : kv.entrySet()) {
+          @SuppressWarnings({"rawtypes"})
           Map.Entry e = (Map.Entry) o;
           if(e.getKey() == null || e.getValue() == null){
             cmd.addError("name and password must be non-null");
diff --git a/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java b/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java
index 389b318..2d999eb 100644
--- a/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java
+++ b/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java
@@ -421,7 +421,7 @@ public class ConcurrentLRUCache<K,V> implements Cache<K,V>, Accountable {
     int wantToKeep = lowerWaterMark;
     int wantToRemove = sz - lowerWaterMark;
 
-    @SuppressWarnings("unchecked") // generic array's are annoying
+    @SuppressWarnings({"unchecked", "rawtypes"})
     CacheEntry<K,V>[] eset = new CacheEntry[sz];
     int eSize = 0;
 
@@ -556,6 +556,7 @@ public class ConcurrentLRUCache<K,V> implements Cache<K,V>, Accountable {
           // this loop so far.
           queue.myMaxSize = sz - lowerWaterMark - numRemoved;
           while (queue.size() > queue.myMaxSize && queue.size() > 0) {
+            @SuppressWarnings({"rawtypes"})
             CacheEntry otherEntry = queue.pop();
             newOldestEntry = Math.min(otherEntry.lastAccessedCopy, newOldestEntry);
           }
@@ -599,7 +600,8 @@ public class ConcurrentLRUCache<K,V> implements Cache<K,V>, Accountable {
     }
 
     @Override
-    protected boolean lessThan(CacheEntry a, CacheEntry b) {
+    protected boolean lessThan(@SuppressWarnings({"rawtypes"})CacheEntry a,
+                               @SuppressWarnings({"rawtypes"})CacheEntry b) {
       // reverse the parameter order so that the queue keeps the oldest items
       return b.lastAccessedCopy < a.lastAccessedCopy;
     }
@@ -863,17 +865,19 @@ public class ConcurrentLRUCache<K,V> implements Cache<K,V>, Accountable {
   }
 
   private static class CleanupThread extends Thread {
+    @SuppressWarnings({"rawtypes"})
     private WeakReference<ConcurrentLRUCache> cache;
 
     private boolean stop = false;
 
-    public CleanupThread(ConcurrentLRUCache c) {
+    public CleanupThread(@SuppressWarnings({"rawtypes"})ConcurrentLRUCache c) {
       cache = new WeakReference<>(c);
     }
 
     @Override
     public void run() {
       while (true) {
+        @SuppressWarnings({"rawtypes"})
         ConcurrentLRUCache c = cache.get();
         if(c == null) break;
         synchronized (this) {
diff --git a/solr/core/src/java/org/apache/solr/util/DOMUtil.java b/solr/core/src/java/org/apache/solr/util/DOMUtil.java
index 29dab93..48d2f41 100644
--- a/solr/core/src/java/org/apache/solr/util/DOMUtil.java
+++ b/solr/core/src/java/org/apache/solr/util/DOMUtil.java
@@ -107,6 +107,7 @@ public class DOMUtil {
     return nodesToNamedList(nd.getChildNodes());
   }
 
+  @SuppressWarnings({"rawtypes"})
   public static List childNodesToList(Node nd) {
     return nodesToList(nd.getChildNodes());
   }
@@ -119,6 +120,7 @@ public class DOMUtil {
     return clst;
   }
 
+  @SuppressWarnings({"rawtypes"})
   public static List nodesToList(NodeList nlst) {
     List lst = new ArrayList();
     for (int i=0; i<nlst.getLength(); i++) {
@@ -141,7 +143,9 @@ public class DOMUtil {
    *             If this param is null it will be ignored.
    */
   @SuppressWarnings("unchecked")
-  public static void addToNamedList(Node nd, NamedList nlst, List arr) {
+  public static void addToNamedList(Node nd,
+                                    @SuppressWarnings({"rawtypes"})NamedList nlst,
+                                    @SuppressWarnings({"rawtypes"})List arr) {
     // Nodes often include whitespace, etc... so just return if this
     // is not an Element.
     if (nd.getNodeType() != Node.ELEMENT_NODE) return;
diff --git a/solr/core/src/java/org/apache/solr/util/ExportTool.java b/solr/core/src/java/org/apache/solr/util/ExportTool.java
index 869d1e3..2dfcb20 100644
--- a/solr/core/src/java/org/apache/solr/util/ExportTool.java
+++ b/solr/core/src/java/org/apache/solr/util/ExportTool.java
@@ -273,6 +273,7 @@ public class ExportTool extends SolrCLI.ToolBase {
     }
 
     @Override
+    @SuppressWarnings({"unchecked", "rawtypes"})
     public synchronized void accept(SolrDocument doc) throws IOException {
       charArr.reset();
       Map m = new LinkedHashMap(doc.size());
@@ -300,7 +301,7 @@ public class ExportTool extends SolrCLI.ToolBase {
       super.accept(doc);
     }
 
-    private boolean hasdate(List list) {
+    private boolean hasdate(@SuppressWarnings({"rawtypes"})List list) {
       boolean hasDate = false;
       for (Object o : list) {
         if(o instanceof Date){
@@ -377,10 +378,10 @@ public class ExportTool extends SolrCLI.ToolBase {
 
   static class MultiThreadedRunner extends Info {
     ExecutorService producerThreadpool, consumerThreadpool;
-    ArrayBlockingQueue<SolrDocument> queue = new ArrayBlockingQueue(1000);
+    ArrayBlockingQueue<SolrDocument> queue = new ArrayBlockingQueue<>(1000);
     SolrDocument EOFDOC = new SolrDocument();
     volatile boolean failed = false;
-    Map<String, CoreHandler> corehandlers = new HashMap();
+    Map<String, CoreHandler> corehandlers = new HashMap<>();
     private long startTime ;
 
     @SuppressForbidden(reason = "Need to print out time")
diff --git a/solr/core/src/java/org/apache/solr/util/MockSearchableSolrClient.java b/solr/core/src/java/org/apache/solr/util/MockSearchableSolrClient.java
index 646d008..3dcb161 100644
--- a/solr/core/src/java/org/apache/solr/util/MockSearchableSolrClient.java
+++ b/solr/core/src/java/org/apache/solr/util/MockSearchableSolrClient.java
@@ -50,7 +50,8 @@ public class MockSearchableSolrClient extends SolrClient {
   }
 
   @Override
-  public synchronized NamedList<Object> request(SolrRequest request, String coll) throws SolrServerException, IOException {
+  public synchronized NamedList<Object> request(@SuppressWarnings({"rawtypes"})SolrRequest request,
+                                                String coll) throws SolrServerException, IOException {
     if (coll == null) {
       if (request.getParams() != null) {
         coll = request.getParams().get("collection");
diff --git a/solr/core/src/java/org/apache/solr/util/PackageTool.java b/solr/core/src/java/org/apache/solr/util/PackageTool.java
index 49d476f..96d84ad 100644
--- a/solr/core/src/java/org/apache/solr/util/PackageTool.java
+++ b/solr/core/src/java/org/apache/solr/util/PackageTool.java
@@ -26,7 +26,6 @@ import java.util.Map;
 
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.io.FileUtils;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.logging.log4j.Level;
@@ -215,7 +214,7 @@ public class PackageTool extends SolrCLI.ToolBase {
    * @return A pair of package name (first) and version (second)
    */
   private Pair<String, String> parsePackageVersion(String arg) {
-    String splits[] = arg.split(":");
+    String[] splits = arg.split(":");
     if (splits.length > 2) {
       throw new SolrException(ErrorCode.BAD_REQUEST, "Invalid package name: " + arg +
           ". Didn't match the pattern: <packagename>:<version> or <packagename>");
@@ -223,51 +222,50 @@ public class PackageTool extends SolrCLI.ToolBase {
 
     String packageName = splits[0];
     String version = splits.length == 2? splits[1]: null;
-    return new Pair(packageName, version);
+    return new Pair<>(packageName, version);
   }
 
-  @SuppressWarnings("static-access")
   public Option[] getOptions() {
     return new Option[] {
-        OptionBuilder
-        .withArgName("URL")
+        Option.builder("solrUrl")
+        .argName("URL")
         .hasArg()
-        .isRequired(true)
-        .withDescription("Address of the Solr Web application, defaults to: " + SolrCLI.DEFAULT_SOLR_URL)
-        .create("solrUrl"),
+        .required(true)
+        .desc("Address of the Solr Web application, defaults to: " + SolrCLI.DEFAULT_SOLR_URL)
+        .build(),
 
-        OptionBuilder
-        .withArgName("COLLECTIONS")
+        Option.builder("collections")
+        .argName("COLLECTIONS")
         .hasArg()
-        .isRequired(false)
-        .withDescription("List of collections. Run './solr package help' for more details.")
-        .create("collections"),
+        .required(false)
+        .desc("List of collections. Run './solr package help' for more details.")
+        .build(),
 
-        OptionBuilder
-        .withArgName("PARAMS")
+        Option.builder("p")
+        .argName("PARAMS")
         .hasArgs()
-        .isRequired(false)
-        .withDescription("List of parameters to be used with deploy command. Run './solr package help' for more details.")
-        .withLongOpt("param")
-        .create("p"),
+        .required(false)
+        .desc("List of parameters to be used with deploy command. Run './solr package help' for more details.")
+        .longOpt("param")
+        .build(),
 
-        OptionBuilder
-        .isRequired(false)
-        .withDescription("If a deployment is an update over a previous deployment. Run './solr package help' for more details.")
-        .withLongOpt("update")
-        .create("u"),
+        Option.builder("u")
+        .required(false)
+        .desc("If a deployment is an update over a previous deployment. Run './solr package help' for more details.")
+        .longOpt("update")
+        .build(),
 
-        OptionBuilder
-        .isRequired(false)
-        .withDescription("Run './solr package help' for more details.")
-        .withLongOpt("collection")
-        .create("c"),
+        Option.builder("c")
+        .required(false)
+        .desc("Run './solr package help' for more details.")
+        .longOpt("collection")
+        .build(),
 
-        OptionBuilder
-        .isRequired(false)
-        .withDescription("Run './solr package help' for more details.")
-        .withLongOpt("noprompt")
-        .create("y")
+        Option.builder("y")
+        .required(false)
+        .desc("Run './solr package help' for more details.")
+        .longOpt("noprompt")
+        .build()
     };
   }
 
@@ -285,6 +283,7 @@ public class PackageTool extends SolrCLI.ToolBase {
       // convert raw JSON into user-friendly output
       StatusTool statusTool = new StatusTool();
       Map<String,Object> status = statusTool.reportStatus(solrUrl+"/", systemInfo, httpClient);
+      @SuppressWarnings({"unchecked"})
       Map<String,Object> cloud = (Map<String, Object>)status.get("cloud");
       if (cloud != null) {
         String zookeeper = (String) cloud.get("ZooKeeper");
diff --git a/solr/core/src/java/org/apache/solr/util/RTimerTree.java b/solr/core/src/java/org/apache/solr/util/RTimerTree.java
index 7e27669..712bc4a 100644
--- a/solr/core/src/java/org/apache/solr/util/RTimerTree.java
+++ b/solr/core/src/java/org/apache/solr/util/RTimerTree.java
@@ -70,6 +70,7 @@ public class RTimerTree extends RTimer {
     return asNamedList().toString();
   }
 
+  @SuppressWarnings({"rawtypes"})
   public NamedList asNamedList() {
     NamedList<Object> m = new SimpleOrderedMap<>();
     m.add( "time", getTime() );
diff --git a/solr/core/src/java/org/apache/solr/util/SolrLogLayout.java b/solr/core/src/java/org/apache/solr/util/SolrLogLayout.java
index f7c02ce..0280eee 100644
--- a/solr/core/src/java/org/apache/solr/util/SolrLogLayout.java
+++ b/solr/core/src/java/org/apache/solr/util/SolrLogLayout.java
@@ -237,6 +237,7 @@ public class SolrLogLayout extends AbstractStringLayout {
     return sb.toString();
   }
 
+  @SuppressWarnings({"unchecked"})
   private Map<String, Object> getReplicaProps(ZkController zkController, SolrCore core) {
     final String collectionName = core.getCoreDescriptor().getCloudDescriptor().getCollectionName();
     DocCollection collection = zkController.getClusterState().getCollectionOrNull(collectionName);
diff --git a/solr/core/src/java/org/apache/solr/util/SolrLogPostTool.java b/solr/core/src/java/org/apache/solr/util/SolrLogPostTool.java
index c877579..3fb904e 100644
--- a/solr/core/src/java/org/apache/solr/util/SolrLogPostTool.java
+++ b/solr/core/src/java/org/apache/solr/util/SolrLogPostTool.java
@@ -69,7 +69,7 @@ public class SolrLogPostTool {
     try {
       client = builder.withBaseSolrUrl(baseUrl).build();
       File rf = new File(root);
-      List<File> files = new ArrayList();
+      List<File> files = new ArrayList<>();
       gatherFiles(rf, files);
       int rec = 0;
       UpdateRequest request = new UpdateRequest();
diff --git a/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java b/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java
index 5bf6e17..da80c85 100644
--- a/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java
+++ b/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java
@@ -323,6 +323,7 @@ public class SolrPluginUtils {
    * @return The debug info
    * @throws java.io.IOException if there was an IO error
    */
+  @SuppressWarnings({"rawtypes"})
   public static NamedList doStandardDebug(
           SolrQueryRequest req,
           String userQuery,
@@ -339,12 +340,13 @@ public class SolrPluginUtils {
   }
 
 
+  @SuppressWarnings({"unchecked"})
   public static void doStandardQueryDebug(
           SolrQueryRequest req,
           String userQuery,
           Query query,
           boolean dbgQuery,
-          NamedList dbg)
+          @SuppressWarnings({"rawtypes"})NamedList dbg)
   {
     if (dbgQuery) {
       /* userQuery may have been pre-processed .. expose that */
@@ -360,12 +362,13 @@ public class SolrPluginUtils {
     }
   }
 
+  @SuppressWarnings({"unchecked"})
   public static void doStandardResultsDebug(
           SolrQueryRequest req,
           Query query,
           DocList results,
           boolean dbgResults,
-          NamedList dbg) throws IOException
+          @SuppressWarnings({"rawtypes"})NamedList dbg) throws IOException
   {
     if (dbgResults) {
       SolrIndexSearcher searcher = req.getSearcher();
@@ -844,7 +847,7 @@ public class SolrPluginUtils {
    * {@code resultIds} is.  {@code resultIds} comes from {@link ResponseBuilder#resultIds}.  If the doc key
    * isn't in {@code resultIds} then it is ignored.
    * Note: most likely you will call {@link #removeNulls(Map.Entry[], NamedList)} sometime after calling this. */
-  public static void copyNamedListIntoArrayByDocPosInResponse(NamedList namedList, Map<Object, ShardDoc> resultIds,
+  public static void copyNamedListIntoArrayByDocPosInResponse(@SuppressWarnings({"rawtypes"})NamedList namedList, Map<Object, ShardDoc> resultIds,
                                                               Map.Entry<String, Object>[] destArr) {
     assert resultIds.size() == destArr.length;
     for (int i = 0; i < namedList.size(); i++) {
diff --git a/solr/core/src/java/org/apache/solr/util/TestInjection.java b/solr/core/src/java/org/apache/solr/util/TestInjection.java
index 28996e9..2656155 100644
--- a/solr/core/src/java/org/apache/solr/util/TestInjection.java
+++ b/solr/core/src/java/org/apache/solr/util/TestInjection.java
@@ -71,9 +71,11 @@ public class TestInjection {
    * If non-null, then this class should be used for accessing random entropy
    * @see #random
    */
+  @SuppressWarnings({"rawtypes"})
   private static final Class LUCENE_TEST_CASE;
   
   static {
+    @SuppressWarnings({"rawtypes"})
     Class nonFinalTemp = null;
     try {
       ClassLoader classLoader = MethodHandles.lookup().lookupClass().getClassLoader();
@@ -94,6 +96,7 @@ public class TestInjection {
       return null;
     } else {
       try {
+        @SuppressWarnings({"unchecked"})
         Method randomMethod = LUCENE_TEST_CASE.getMethod("random");
         return (Random) randomMethod.invoke(null);
       } catch (Exception e) {
diff --git a/solr/core/src/java/org/apache/solr/util/configuration/SSLCredentialProviderFactory.java b/solr/core/src/java/org/apache/solr/util/configuration/SSLCredentialProviderFactory.java
index 4d38ea2..ec1782e 100644
--- a/solr/core/src/java/org/apache/solr/util/configuration/SSLCredentialProviderFactory.java
+++ b/solr/core/src/java/org/apache/solr/util/configuration/SSLCredentialProviderFactory.java
@@ -38,6 +38,7 @@ public class SSLCredentialProviderFactory {
   public static final String DEFAULT_PROVIDER_CHAIN = "env;sysprop";
   public static final String PROVIDER_CHAIN_KEY = "solr.ssl.credential.provider.chain";
 
+  @SuppressWarnings({"rawtypes"})
   private final static ImmutableMap<String, Class> defaultProviders = ImmutableMap.of(
       "env", EnvSSLCredentialProvider.class,
       "sysprop", SysPropSSLCredentialProvider.class,
@@ -82,7 +83,8 @@ public class SSLCredentialProviderFactory {
     }
   }
 
-  private SSLCredentialProvider getDefaultProvider(Class aClass) {
+  @SuppressWarnings({"unchecked"})
+  private SSLCredentialProvider getDefaultProvider(@SuppressWarnings({"rawtypes"})Class aClass) {
     try {
       return (SSLCredentialProvider) aClass.getConstructor().newInstance();
     } catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
diff --git a/solr/core/src/java/org/apache/solr/util/plugin/NamedListInitializedPlugin.java b/solr/core/src/java/org/apache/solr/util/plugin/NamedListInitializedPlugin.java
index ce2a7c8..e611b8b 100644
--- a/solr/core/src/java/org/apache/solr/util/plugin/NamedListInitializedPlugin.java
+++ b/solr/core/src/java/org/apache/solr/util/plugin/NamedListInitializedPlugin.java
@@ -25,5 +25,5 @@ import org.apache.solr.common.util.NamedList;
  * @since solr 1.3
  */
 public interface NamedListInitializedPlugin {
-  void init( NamedList args );
+  void init( @SuppressWarnings({"rawtypes"})NamedList args );
 }
diff --git a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java
index 8b62186..a604c83 100644
--- a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java
+++ b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java
@@ -174,6 +174,7 @@ public class MetricUtils {
       doc.addField(key, o);
       return;
     }
+    @SuppressWarnings({"unchecked"})
     Map<String, Object> map = (Map<String, Object>)o;
     for (Map.Entry<String, Object> entry : map.entrySet()) {
       if (entry.getValue() instanceof Map) { // flatten recursively
@@ -269,6 +270,7 @@ public class MetricUtils {
       Counter counter = (Counter) metric;
       convertCounter(n, counter, propertyFilter, compact, consumer);
     } else if (metric instanceof Gauge) {
+      @SuppressWarnings({"rawtypes"})
       Gauge gauge = (Gauge) metric;
       try {
         convertGauge(n, gauge, propertyFilter, simple, compact, separator, consumer);
@@ -482,8 +484,10 @@ public class MetricUtils {
    *                then return a map with a "value" field.
    * @param consumer consumer that accepts produced objects
    */
-  static void convertGauge(String name, Gauge gauge, PropertyFilter propertyFilter, boolean simple, boolean compact,
-                             String separator, BiConsumer<String, Object> consumer) {
+  static void convertGauge(String name,
+                           @SuppressWarnings({"rawtypes"})Gauge gauge,
+                           PropertyFilter propertyFilter, boolean simple, boolean compact,
+                           String separator, BiConsumer<String, Object> consumer) {
     if (compact || simple) {
       Object o = gauge.getValue();
       if (o instanceof Map) {
diff --git a/solr/core/src/java/org/apache/solr/util/tracing/SolrRequestCarrier.java b/solr/core/src/java/org/apache/solr/util/tracing/SolrRequestCarrier.java
index 8dcb025..f5c613b 100644
--- a/solr/core/src/java/org/apache/solr/util/tracing/SolrRequestCarrier.java
+++ b/solr/core/src/java/org/apache/solr/util/tracing/SolrRequestCarrier.java
@@ -28,9 +28,10 @@ import org.apache.solr.client.solrj.SolrRequest;
  */
 public class SolrRequestCarrier implements TextMap {
 
+  @SuppressWarnings({"rawtypes"})
   private final SolrRequest solrRequest;
 
-  public SolrRequestCarrier(SolrRequest solrRequest) {
+  public SolrRequestCarrier(@SuppressWarnings({"rawtypes"})SolrRequest solrRequest) {
     this.solrRequest = solrRequest;
   }