Răsfoiți Sursa

[#40366] Silence some lint warnings in server project (#48927)

Part of #40366. Silence a number of lint warnings in the :server
project, which arise when re-enabling suppressed warnings in
server/build.gradle.
Rory Hunter 6 ani în urmă
părinte
comite
293648b4ee
29 a modificat fișierele cu 103 adăugiri și 52 ștergeri
  1. 2 0
      server/src/main/java/org/elasticsearch/cluster/ClusterState.java
  2. 1 0
      server/src/main/java/org/elasticsearch/cluster/metadata/MappingMetaData.java
  3. 2 1
      server/src/main/java/org/elasticsearch/common/cache/Cache.java
  4. 2 1
      server/src/main/java/org/elasticsearch/common/document/DocumentField.java
  5. 1 0
      server/src/main/java/org/elasticsearch/common/io/stream/NamedWriteableRegistry.java
  6. 5 5
      server/src/main/java/org/elasticsearch/common/io/stream/StreamInput.java
  7. 4 4
      server/src/main/java/org/elasticsearch/common/lucene/Lucene.java
  8. 2 1
      server/src/main/java/org/elasticsearch/common/settings/AbstractScopedSettings.java
  9. 1 1
      server/src/main/java/org/elasticsearch/common/settings/IndexScopedSettings.java
  10. 9 1
      server/src/main/java/org/elasticsearch/common/util/CollectionUtils.java
  11. 3 1
      server/src/main/java/org/elasticsearch/common/util/set/Sets.java
  12. 1 1
      server/src/main/java/org/elasticsearch/index/IndexWarmer.java
  13. 1 0
      server/src/main/java/org/elasticsearch/index/mapper/GeoPointFieldMapper.java
  14. 1 0
      server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java
  15. 9 3
      server/src/main/java/org/elasticsearch/index/mapper/ObjectMapper.java
  16. 17 10
      server/src/main/java/org/elasticsearch/index/mapper/RootObjectMapper.java
  17. 4 2
      server/src/main/java/org/elasticsearch/index/mapper/TypeParsers.java
  18. 1 0
      server/src/main/java/org/elasticsearch/index/query/QueryRewriteContext.java
  19. 2 0
      server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java
  20. 5 7
      server/src/main/java/org/elasticsearch/indices/fielddata/cache/IndicesFieldDataCache.java
  21. 2 1
      server/src/main/java/org/elasticsearch/plugins/PluginsService.java
  22. 4 4
      server/src/main/java/org/elasticsearch/plugins/SearchPlugin.java
  23. 1 1
      server/src/main/java/org/elasticsearch/script/ScriptService.java
  24. 2 1
      server/src/main/java/org/elasticsearch/search/fetch/FetchPhase.java
  25. 2 0
      server/src/main/java/org/elasticsearch/search/internal/ShardSearchRequest.java
  26. 3 2
      server/src/main/java/org/elasticsearch/search/lookup/LeafFieldsLookup.java
  27. 6 5
      server/src/main/java/org/elasticsearch/search/lookup/SourceLookup.java
  28. 7 0
      server/src/main/java/org/elasticsearch/search/suggest/Suggest.java
  29. 3 0
      server/src/main/java/org/elasticsearch/threadpool/ThreadPool.java

+ 2 - 0
server/src/main/java/org/elasticsearch/cluster/ClusterState.java

@@ -216,6 +216,7 @@ public class ClusterState implements ToXContentFragment, Diffable<ClusterState>
         return this.customs;
     }
 
+    @SuppressWarnings("unchecked")
     public <T extends Custom> T custom(String type) {
         return (T) customs.get(type);
     }
@@ -366,6 +367,7 @@ public class ClusterState implements ToXContentFragment, Diffable<ClusterState>
     }
 
     @Override
+    @SuppressWarnings("unchecked")
     public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
         EnumSet<Metric> metrics = Metric.parseString(params.param("metric", "_all"), true);
 

+ 1 - 0
server/src/main/java/org/elasticsearch/cluster/metadata/MappingMetaData.java

@@ -118,6 +118,7 @@ public class MappingMetaData extends AbstractDiffable<MappingMetaData> {
     /**
      * Converts the serialized compressed form of the mappings into a parsed map.
      */
+    @SuppressWarnings("unchecked")
     public Map<String, Object> sourceAsMap() throws ElasticsearchParseException {
         Map<String, Object> mapping = XContentHelper.convertToMap(source.compressedReference(), true).v2();
         if (mapping.size() == 1 && mapping.containsKey(type())) {

+ 2 - 1
server/src/main/java/org/elasticsearch/common/cache/Cache.java

@@ -336,7 +336,8 @@ public class Cache<K, V> {
     }
 
     public static final int NUMBER_OF_SEGMENTS = 256;
-    @SuppressWarnings("unchecked") private final CacheSegment<K, V>[] segments = new CacheSegment[NUMBER_OF_SEGMENTS];
+    @SuppressWarnings({"unchecked", "rawtypes"})
+    private final CacheSegment<K, V>[] segments = new CacheSegment[NUMBER_OF_SEGMENTS];
 
     {
         for (int i = 0; i < segments.length; i++) {

+ 2 - 1
server/src/main/java/org/elasticsearch/common/document/DocumentField.java

@@ -73,11 +73,12 @@ public class DocumentField implements Writeable, ToXContentFragment, Iterable<Ob
     /**
      * The first value of the hit.
      */
+    @SuppressWarnings("unchecked")
     public <V> V getValue() {
         if (values == null || values.isEmpty()) {
             return null;
         }
-        return (V)values.get(0);
+        return (V) values.get(0);
     }
 
     /**

+ 1 - 0
server/src/main/java/org/elasticsearch/common/io/stream/NamedWriteableRegistry.java

@@ -63,6 +63,7 @@ public class NamedWriteableRegistry {
     /**
      * Constructs a new registry from the given entries.
      */
+    @SuppressWarnings("rawtypes")
     public NamedWriteableRegistry(List<Entry> entries) {
         if (entries.isEmpty()) {
             registry = Collections.emptyMap();

+ 5 - 5
server/src/main/java/org/elasticsearch/common/io/stream/StreamInput.java

@@ -748,13 +748,12 @@ public abstract class StreamInput extends InputStream {
         return present ? readInstant() : null;
     }
 
-    @SuppressWarnings("unchecked")
-    private List readArrayList() throws IOException {
+    private List<Object> readArrayList() throws IOException {
         int size = readArraySize();
         if (size == 0) {
             return Collections.emptyList();
         }
-        List list = new ArrayList(size);
+        List<Object> list = new ArrayList<>(size);
         for (int i = 0; i < size; i++) {
             list.add(readGenericValue());
         }
@@ -790,7 +789,7 @@ public abstract class StreamInput extends InputStream {
         if (size9 == 0) {
             return Collections.emptyMap();
         }
-        Map map9 = new LinkedHashMap(size9);
+        Map<String, Object> map9 = new LinkedHashMap<>(size9);
         for (int i = 0; i < size9; i++) {
             map9.put(readString(), readGenericValue());
         }
@@ -802,7 +801,7 @@ public abstract class StreamInput extends InputStream {
         if (size10 == 0) {
             return Collections.emptyMap();
         }
-        Map map10 = new HashMap(size10);
+        Map<String, Object> map10 = new HashMap<>(size10);
         for (int i = 0; i < size10; i++) {
             map10.put(readString(), readGenericValue());
         }
@@ -985,6 +984,7 @@ public abstract class StreamInput extends InputStream {
         }
     }
 
+    @SuppressWarnings("unchecked")
     public <T extends Exception> T readException() throws IOException {
         if (readBoolean()) {
             int key = readVInt();

+ 4 - 4
server/src/main/java/org/elasticsearch/common/lucene/Lucene.java

@@ -264,7 +264,7 @@ public class Lucene {
     }
 
     public static void checkSegmentInfoIntegrity(final Directory directory) throws IOException {
-        new SegmentInfos.FindSegmentsFile(directory) {
+        new SegmentInfos.FindSegmentsFile<>(directory) {
 
             @Override
             protected Object doBody(String segmentFileName) throws IOException {
@@ -345,7 +345,7 @@ public class Lucene {
     }
 
     public static FieldDoc readFieldDoc(StreamInput in) throws IOException {
-        Comparable[] cFields = new Comparable[in.readVInt()];
+        Comparable<?>[] cFields = new Comparable<?>[in.readVInt()];
         for (int j = 0; j < cFields.length; j++) {
             byte type = in.readByte();
             if (type == 0) {
@@ -375,7 +375,7 @@ public class Lucene {
         return new FieldDoc(in.readVInt(), in.readFloat(), cFields);
     }
 
-    public static Comparable readSortValue(StreamInput in) throws IOException {
+    public static Comparable<?> readSortValue(StreamInput in) throws IOException {
         byte type = in.readByte();
         if (type == 0) {
             return null;
@@ -484,7 +484,7 @@ public class Lucene {
         if (field == null) {
             out.writeByte((byte) 0);
         } else {
-            Class type = field.getClass();
+            Class<?> type = field.getClass();
             if (type == String.class) {
                 out.writeByte((byte) 1);
                 out.writeString((String) field);

+ 2 - 1
server/src/main/java/org/elasticsearch/common/settings/AbstractScopedSettings.java

@@ -302,6 +302,7 @@ public abstract class AbstractScopedSettings {
      * Note: Only settings registered in {@link SettingsModule} can be changed dynamically.
      * </p>
      */
+    @SuppressWarnings("rawtypes")
     public synchronized void addAffixGroupUpdateConsumer(List<Setting.AffixSetting<?>> settings, BiConsumer<String, Settings> consumer) {
         List<SettingUpdater> affixUpdaters = new ArrayList<>(settings.size());
         for (Setting.AffixSetting<?> setting : settings) {
@@ -503,7 +504,7 @@ public abstract class AbstractScopedSettings {
      */
     void validate(
             final String key, final Settings settings, final boolean validateDependencies, final boolean validateInternalOrPrivateIndex) {
-        Setting setting = getRaw(key);
+        Setting<?> setting = getRaw(key);
         if (setting == null) {
             LevenshteinDistance ld = new LevenshteinDistance();
             List<Tuple<Float, String>> scoredKeys = new ArrayList<>();

+ 1 - 1
server/src/main/java/org/elasticsearch/common/settings/IndexScopedSettings.java

@@ -194,7 +194,7 @@ public final class IndexScopedSettings extends AbstractScopedSettings {
     }
 
     @Override
-    protected void validateSettingKey(Setting setting) {
+    protected void validateSettingKey(Setting<?> setting) {
         if (setting.getKey().startsWith("index.") == false) {
             throw new IllegalArgumentException("illegal settings key: [" + setting.getKey() + "] must start with [index.]");
         }

+ 9 - 1
server/src/main/java/org/elasticsearch/common/util/CollectionUtils.java

@@ -152,6 +152,7 @@ public class CollectionUtils {
         }
     }
 
+    @SuppressWarnings("unchecked")
     private static Iterable<?> convert(Object value) {
         if (value == null) {
             return null;
@@ -267,12 +268,13 @@ public class CollectionUtils {
 
     }
 
+    @SuppressWarnings("unchecked")
     public static <E> ArrayList<E> iterableAsArrayList(Iterable<? extends E> elements) {
         if (elements == null) {
             throw new NullPointerException("elements");
         }
         if (elements instanceof Collection) {
-            return new ArrayList<>((Collection)elements);
+            return new ArrayList<>((Collection) elements);
         } else {
             ArrayList<E> list = new ArrayList<>();
             for (E element : elements) {
@@ -282,6 +284,8 @@ public class CollectionUtils {
         }
     }
 
+    @SafeVarargs
+    @SuppressWarnings("varargs")
     public static <E> ArrayList<E> arrayAsArrayList(E... elements) {
         if (elements == null) {
             throw new NullPointerException("elements");
@@ -289,6 +293,8 @@ public class CollectionUtils {
         return new ArrayList<>(Arrays.asList(elements));
     }
 
+    @SafeVarargs
+    @SuppressWarnings("varargs")
     public static <E> ArrayList<E> asArrayList(E first, E... other) {
         if (other == null) {
             throw new NullPointerException("other");
@@ -299,6 +305,8 @@ public class CollectionUtils {
         return list;
     }
 
+    @SafeVarargs
+    @SuppressWarnings("varargs")
     public static<E> ArrayList<E> asArrayList(E first, E second, E... other) {
         if (other == null) {
             throw new NullPointerException("other");

+ 3 - 1
server/src/main/java/org/elasticsearch/common/util/set/Sets.java

@@ -51,9 +51,11 @@ public final class Sets {
 
     public static <T> HashSet<T> newHashSet(Iterable<T> iterable) {
         Objects.requireNonNull(iterable);
-        return iterable instanceof Collection ? new HashSet<>((Collection)iterable) : newHashSet(iterable.iterator());
+        return iterable instanceof Collection ? new HashSet<>((Collection<T>) iterable) : newHashSet(iterable.iterator());
     }
 
+    @SafeVarargs
+    @SuppressWarnings("varargs")
     public static <T> HashSet<T> newHashSet(T... elements) {
         Objects.requireNonNull(elements);
         HashSet<T> set = new HashSet<>(elements.length);

+ 1 - 1
server/src/main/java/org/elasticsearch/index/IndexWarmer.java

@@ -131,7 +131,7 @@ public final class IndexWarmer {
                 executor.execute(() -> {
                     try {
                         final long start = System.nanoTime();
-                        IndexFieldData.Global ifd = indexFieldDataService.getForField(fieldType);
+                        IndexFieldData.Global<?> ifd = indexFieldDataService.getForField(fieldType);
                         IndexFieldData<?> global = ifd.loadGlobal(reader);
                         if (reader.leaves().isEmpty() == false) {
                             global.load(reader.leaves().get(0));

+ 1 - 0
server/src/main/java/org/elasticsearch/index/mapper/GeoPointFieldMapper.java

@@ -131,6 +131,7 @@ public class GeoPointFieldMapper extends FieldMapper implements ArrayValueMapper
 
     public static class TypeParser implements Mapper.TypeParser {
         @Override
+        @SuppressWarnings("rawtypes")
         public Mapper.Builder parse(String name, Map<String, Object> node, ParserContext parserContext)
                 throws MapperParsingException {
             Builder builder = new GeoPointFieldMapper.Builder(name);

+ 1 - 0
server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java

@@ -47,6 +47,7 @@ public abstract class MetadataFieldMapper extends FieldMapper {
         MetadataFieldMapper getDefault(MappedFieldType fieldType, ParserContext parserContext);
     }
 
+    @SuppressWarnings("rawtypes")
     public abstract static class Builder<T extends Builder, Y extends MetadataFieldMapper> extends FieldMapper.Builder<T, Y> {
         public Builder(String name, MappedFieldType fieldType, MappedFieldType defaultFieldType) {
             super(name, fieldType, defaultFieldType);

+ 9 - 3
server/src/main/java/org/elasticsearch/index/mapper/ObjectMapper.java

@@ -95,6 +95,7 @@ public class ObjectMapper extends Mapper implements Cloneable {
         }
     }
 
+    @SuppressWarnings("rawtypes")
     public static class Builder<T extends Builder, Y extends ObjectMapper> extends Mapper.Builder<T, Y> {
 
         protected boolean enabled = Defaults.ENABLED;
@@ -105,6 +106,7 @@ public class ObjectMapper extends Mapper implements Cloneable {
 
         protected final List<Mapper.Builder> mappersBuilders = new ArrayList<>();
 
+        @SuppressWarnings("unchecked")
         public Builder(String name) {
             super(name);
             this.builder = (T) this;
@@ -131,6 +133,7 @@ public class ObjectMapper extends Mapper implements Cloneable {
         }
 
         @Override
+        @SuppressWarnings("unchecked")
         public Y build(BuilderContext context) {
             context.path().add(name);
 
@@ -159,9 +162,10 @@ public class ObjectMapper extends Mapper implements Cloneable {
 
     public static class TypeParser implements Mapper.TypeParser {
         @Override
+        @SuppressWarnings("rawtypes")
         public Mapper.Builder parse(String name, Map<String, Object> node, ParserContext parserContext) throws MapperParsingException {
             ObjectMapper.Builder builder = new Builder(name);
-            parseNested(name, node, builder, parserContext);
+            parseNested(name, node, builder);
             for (Iterator<Map.Entry<String, Object>> iterator = node.entrySet().iterator(); iterator.hasNext();) {
                 Map.Entry<String, Object> entry = iterator.next();
                 String fieldName = entry.getKey();
@@ -173,6 +177,7 @@ public class ObjectMapper extends Mapper implements Cloneable {
             return builder;
         }
 
+        @SuppressWarnings({"unchecked", "rawtypes"})
         protected static boolean parseObjectOrDocumentTypeProperties(String fieldName, Object fieldNode, ParserContext parserContext,
                                                                      ObjectMapper.Builder builder) {
             if (fieldName.equals("dynamic")) {
@@ -203,8 +208,8 @@ public class ObjectMapper extends Mapper implements Cloneable {
             return false;
         }
 
-        protected static void parseNested(String name, Map<String, Object> node, ObjectMapper.Builder builder,
-                                          ParserContext parserContext) {
+        @SuppressWarnings("rawtypes")
+        protected static void parseNested(String name, Map<String, Object> node, ObjectMapper.Builder builder) {
             boolean nested = false;
             boolean nestedIncludeInParent = false;
             boolean nestedIncludeInRoot = false;
@@ -236,6 +241,7 @@ public class ObjectMapper extends Mapper implements Cloneable {
 
         }
 
+        @SuppressWarnings("rawtypes")
         protected static void parseProperties(ObjectMapper.Builder objBuilder, Map<String, Object> propsNode, ParserContext parserContext) {
             Iterator<Map.Entry<String, Object>> iterator = propsNode.entrySet().iterator();
             while (iterator.hasNext()) {

+ 17 - 10
server/src/main/java/org/elasticsearch/index/mapper/RootObjectMapper.java

@@ -89,6 +89,7 @@ public class RootObjectMapper extends ObjectMapper {
          * @param parentIncluded True iff node is a child of root or a node that is included in
          * root
          */
+        @SuppressWarnings("rawtypes")
         private static void fixRedundantIncludes(ObjectMapper.Builder omb, boolean parentIncluded) {
             for (Object mapper : omb.mappersBuilders) {
                 if (mapper instanceof ObjectMapper.Builder) {
@@ -119,6 +120,7 @@ public class RootObjectMapper extends ObjectMapper {
     public static class TypeParser extends ObjectMapper.TypeParser {
 
         @Override
+        @SuppressWarnings("rawtypes")
         public Mapper.Builder parse(String name, Map<String, Object> node, ParserContext parserContext) throws MapperParsingException {
 
             RootObjectMapper.Builder builder = new Builder(name);
@@ -135,8 +137,9 @@ public class RootObjectMapper extends ObjectMapper {
             return builder;
         }
 
+        @SuppressWarnings("unchecked")
         protected boolean processField(RootObjectMapper.Builder builder, String fieldName, Object fieldNode,
-                Version indexVersionCreated) {
+                                       Version indexVersionCreated) {
             if (fieldName.equals("date_formats") || fieldName.equals("dynamic_date_formats")) {
                 if (fieldNode instanceof List) {
                     List<DateFormatter> formatters = new ArrayList<>();
@@ -154,15 +157,17 @@ public class RootObjectMapper extends ObjectMapper {
                 }
                 return true;
             } else if (fieldName.equals("dynamic_templates")) {
-                //  "dynamic_templates" : [
-                //      {
-                //          "template_1" : {
-                //              "match" : "*_test",
-                //              "match_mapping_type" : "string",
-                //              "mapping" : { "type" : "string", "store" : "yes" }
-                //          }
-                //      }
-                //  ]
+                /*
+                  "dynamic_templates" : [
+                      {
+                          "template_1" : {
+                              "match" : "*_test",
+                              "match_mapping_type" : "string",
+                              "mapping" : { "type" : "string", "store" : "yes" }
+                          }
+                      }
+                  ]
+                */
                 List<?> tmplNodes = (List<?>) fieldNode;
                 List<DynamicTemplate> templates = new ArrayList<>();
                 for (Object tmplNode : tmplNodes) {
@@ -231,6 +236,7 @@ public class RootObjectMapper extends ObjectMapper {
         return dynamicDateTimeFormatters.value();
     }
 
+    @SuppressWarnings("rawtypes")
     public Mapper.Builder findTemplateBuilder(ParseContext context, String name, XContentFieldType matchType) {
         return findTemplateBuilder(context, name, matchType.defaultMappingType(), matchType);
     }
@@ -242,6 +248,7 @@ public class RootObjectMapper extends ObjectMapper {
      * @param matchType   the type of the field in the json document or null if unknown
      * @return a mapper builder, or null if there is no template for such a field
      */
+    @SuppressWarnings("rawtypes")
     public Mapper.Builder findTemplateBuilder(ParseContext context, String name, String dynamicType, XContentFieldType matchType) {
         DynamicTemplate dynamicTemplate = findTemplate(context.path(), name, matchType);
         if (dynamicTemplate == null) {

+ 4 - 2
server/src/main/java/org/elasticsearch/index/mapper/TypeParsers.java

@@ -170,6 +170,7 @@ public class TypeParsers {
     /**
      * Parse common field attributes such as {@code doc_values} or {@code store}.
      */
+    @SuppressWarnings("rawtypes")
     public static void parseField(FieldMapper.Builder builder, String name, Map<String, Object> fieldNode,
                                   Mapper.TypeParser.ParserContext parserContext) {
         for (Iterator<Map.Entry<String, Object>> iterator = fieldNode.entrySet().iterator(); iterator.hasNext();) {
@@ -216,6 +217,7 @@ public class TypeParsers {
         }
     }
 
+    @SuppressWarnings("unchecked")
     public static boolean parseMultiField(FieldMapper.Builder builder, String name, Mapper.TypeParser.ParserContext parserContext,
                                           String propName, Object propNode) {
         if (propName.equals("fields")) {
@@ -255,7 +257,6 @@ public class TypeParsers {
                 if (!(multiFieldEntry.getValue() instanceof Map)) {
                     throw new MapperParsingException("illegal field [" + multiFieldName + "], only fields can be specified inside fields");
                 }
-                @SuppressWarnings("unchecked")
                 Map<String, Object> multiFieldNodes = (Map<String, Object>) multiFieldEntry.getValue();
 
                 String type;
@@ -306,6 +307,7 @@ public class TypeParsers {
         throw new IllegalArgumentException("Invalid format: [" + node.toString() + "]: expected string value");
     }
 
+    @SuppressWarnings("rawtypes")
     public static void parseTermVector(String fieldName, String termVector, FieldMapper.Builder builder) throws MapperParsingException {
         if ("no".equals(termVector)) {
             builder.storeTermVectors(false);
@@ -330,7 +332,7 @@ public class TypeParsers {
         }
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({"unchecked", "rawtypes"})
     public static void parseCopyFields(Object propNode, FieldMapper.Builder builder) {
         FieldMapper.CopyTo.Builder copyToBuilder = new FieldMapper.CopyTo.Builder();
         if (isArray(propNode)) {

+ 1 - 0
server/src/main/java/org/elasticsearch/index/query/QueryRewriteContext.java

@@ -95,6 +95,7 @@ public class QueryRewriteContext {
      * Executes all registered async actions and notifies the listener once it's done. The value that is passed to the listener is always
      * <code>null</code>. The list of registered actions is cleared once this method returns.
      */
+    @SuppressWarnings({"unchecked", "rawtypes"})
     public void executeAsyncActions(ActionListener listener) {
         if (asyncActions.isEmpty()) {
             listener.onResponse(null);

+ 2 - 0
server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java

@@ -189,6 +189,7 @@ public class QueryShardContext extends QueryRewriteContext {
         return bitsetFilterCache.getBitSetProducer(filter);
     }
 
+    @SuppressWarnings("unchecked")
     public <IFD extends IndexFieldData<?>> IFD getForField(MappedFieldType fieldType) {
         return (IFD) indexFieldDataService.apply(fieldType, fullyQualifiedIndex.getName());
     }
@@ -357,6 +358,7 @@ public class QueryShardContext extends QueryRewriteContext {
     }
 
     @Override
+    @SuppressWarnings("rawtypes")
     public void executeAsyncActions(ActionListener listener) {
         failIfFrozen();
         super.executeAsyncActions(listener);

+ 5 - 7
server/src/main/java/org/elasticsearch/indices/fielddata/cache/IndicesFieldDataCache.java

@@ -19,14 +19,12 @@
 
 package org.elasticsearch.indices.fielddata.cache;
 
-import java.util.Collections;
-
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.IndexReader.CacheKey;
+import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.util.Accountable;
 import org.elasticsearch.common.Nullable;
 import org.elasticsearch.common.cache.Cache;
@@ -46,8 +44,8 @@ import org.elasticsearch.index.fielddata.IndexFieldDataCache;
 import org.elasticsearch.index.shard.ShardId;
 import org.elasticsearch.index.shard.ShardUtils;
 
-import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.function.ToLongBiFunction;
 
@@ -130,6 +128,7 @@ public class IndicesFieldDataCache implements RemovalListener<IndicesFieldDataCa
         }
 
         @Override
+        @SuppressWarnings("unchecked")
         public <FD extends AtomicFieldData, IFD extends IndexFieldData<FD>> FD load(final LeafReaderContext context,
                 final IFD indexFieldData) throws Exception {
             final ShardId shardId = ShardUtils.extractShardId(context.reader());
@@ -138,7 +137,6 @@ public class IndicesFieldDataCache implements RemovalListener<IndicesFieldDataCa
                 throw new IllegalArgumentException("Reader " + context.reader() + " does not support caching");
             }
             final Key key = new Key(this, cacheHelper.getKey(), shardId);
-            //noinspection unchecked
             final Accountable accountable = cache.computeIfAbsent(key, k -> {
                 cacheHelper.addClosedListener(IndexFieldCache.this);
                 Collections.addAll(k.listeners, this.listeners);
@@ -157,6 +155,7 @@ public class IndicesFieldDataCache implements RemovalListener<IndicesFieldDataCa
         }
 
         @Override
+        @SuppressWarnings("unchecked")
         public <FD extends AtomicFieldData, IFD extends IndexFieldData.Global<FD>> IFD load(final DirectoryReader indexReader,
                 final IFD indexFieldData) throws Exception {
             final ShardId shardId = ShardUtils.extractShardId(indexReader);
@@ -165,7 +164,6 @@ public class IndicesFieldDataCache implements RemovalListener<IndicesFieldDataCa
                 throw new IllegalArgumentException("Reader " + indexReader + " does not support caching");
             }
             final Key key = new Key(this, cacheHelper.getKey(), shardId);
-            //noinspection unchecked
             final Accountable accountable = cache.computeIfAbsent(key, k -> {
                 ElasticsearchDirectoryReader.addReaderCloseListener(indexReader, IndexFieldCache.this);
                 Collections.addAll(k.listeners, this.listeners);
@@ -184,7 +182,7 @@ public class IndicesFieldDataCache implements RemovalListener<IndicesFieldDataCa
         }
 
         @Override
-        public void onClose(CacheKey key) throws IOException {
+        public void onClose(CacheKey key) {
             cache.invalidate(new Key(this, key, null));
             // don't call cache.cleanUp here as it would have bad performance implications
         }

+ 2 - 1
server/src/main/java/org/elasticsearch/plugins/PluginsService.java

@@ -559,7 +559,7 @@ public class PluginsService {
             throw new IllegalStateException(signatureMessage(pluginClass));
         }
 
-        final Class[] parameterTypes = constructor.getParameterTypes();
+        final Class<?>[] parameterTypes = constructor.getParameterTypes();
         try {
             if (constructor.getParameterCount() == 2 && parameterTypes[0] == Settings.class && parameterTypes[1] == Path.class) {
                 return (Plugin)constructor.newInstance(settings, configPath);
@@ -585,6 +585,7 @@ public class PluginsService {
                 "()");
     }
 
+    @SuppressWarnings("unchecked")
     public <T> List<T> filterPlugins(Class<T> type) {
         return plugins.stream().filter(x -> type.isAssignableFrom(x.v2().getClass()))
             .map(p -> ((T)p.v2())).collect(Collectors.toList());

+ 4 - 4
server/src/main/java/org/elasticsearch/plugins/SearchPlugin.java

@@ -142,7 +142,7 @@ public interface SearchPlugin {
      */
     class SuggesterSpec<T extends SuggestionBuilder<T>> extends SearchExtensionSpec<T, CheckedFunction<XContentParser, T, IOException>> {
 
-        private Writeable.Reader<? extends Suggest.Suggestion> suggestionReader;
+        private Writeable.Reader<? extends Suggest.Suggestion<?>> suggestionReader;
 
         /**
          * Specification of custom {@link Suggester}.
@@ -160,7 +160,7 @@ public interface SearchPlugin {
                 ParseField name,
                 Writeable.Reader<T> builderReader,
                 CheckedFunction<XContentParser, T, IOException> builderParser,
-                Writeable.Reader<? extends Suggest.Suggestion> suggestionReader) {
+                Writeable.Reader<? extends Suggest.Suggestion<?>> suggestionReader) {
 
             super(name, builderReader, builderParser);
             setSuggestionReader(suggestionReader);
@@ -181,13 +181,13 @@ public interface SearchPlugin {
                 String name,
                 Writeable.Reader<T> builderReader,
                 CheckedFunction<XContentParser, T, IOException> builderParser,
-                Writeable.Reader<? extends Suggest.Suggestion> suggestionReader) {
+                Writeable.Reader<? extends Suggest.Suggestion<?>> suggestionReader) {
 
             super(name, builderReader, builderParser);
             setSuggestionReader(suggestionReader);
         }
 
-        private void setSuggestionReader(Writeable.Reader<? extends Suggest.Suggestion> reader) {
+        private void setSuggestionReader(Writeable.Reader<? extends Suggest.Suggestion<?>> reader) {
             this.suggestionReader = reader;
         }
 

+ 1 - 1
server/src/main/java/org/elasticsearch/script/ScriptService.java

@@ -415,7 +415,7 @@ public class ScriptService implements Closeable, ClusterStateApplier {
         return typesAllowed == null || typesAllowed.contains(scriptType.getName());
     }
 
-    public boolean isContextEnabled(ScriptContext scriptContext) {
+    public boolean isContextEnabled(ScriptContext<?> scriptContext) {
         return contextsAllowed == null || contextsAllowed.contains(scriptContext.name);
     }
 

+ 2 - 1
server/src/main/java/org/elasticsearch/search/fetch/FetchPhase.java

@@ -248,6 +248,7 @@ public class FetchPhase implements SearchPhase {
         return searchFields;
     }
 
+    @SuppressWarnings("unchecked")
     private SearchHit createNestedSearchHit(SearchContext context,
                                             int nestedTopDocId,
                                             int nestedSubDocId,
@@ -379,7 +380,7 @@ public class FetchPhase implements SearchPhase {
             BitSet parentBits = context.bitsetFilterCache().getBitSetProducer(parentFilter).getBitSet(subReaderContext);
 
             int offset = 0;
-            /**
+            /*
              * Starts from the previous parent and finds the offset of the
              * <code>nestedSubDocID</code> within the nested children. Nested documents
              * are indexed in the same order than in the source array so the offset

+ 2 - 0
server/src/main/java/org/elasticsearch/search/internal/ShardSearchRequest.java

@@ -301,10 +301,12 @@ public class ShardSearchRequest extends TransportRequest implements IndicesReque
         return "shardId[" + shardId() + "]";
     }
 
+    @SuppressWarnings("rawtypes")
     public Rewriteable<Rewriteable> getRewriteable() {
         return new RequestRewritable(this);
     }
 
+    @SuppressWarnings("rawtypes")
     static class RequestRewritable implements Rewriteable<Rewriteable> {
 
         final ShardSearchRequest request;

+ 3 - 2
server/src/main/java/org/elasticsearch/search/lookup/LeafFieldsLookup.java

@@ -36,7 +36,8 @@ import java.util.Set;
 
 import static java.util.Collections.singletonMap;
 
-public class LeafFieldsLookup implements Map {
+@SuppressWarnings({"unchecked", "rawtypes"})
+public class LeafFieldsLookup implements Map<Object, Object> {
 
     private final MapperService mapperService;
 
@@ -144,7 +145,7 @@ public class LeafFieldsLookup implements Map {
                     values.add(mapper.type());
                 }
             } else {
-                values = new ArrayList<Object>(2);
+                values = new ArrayList<>(2);
                 SingleFieldsVisitor visitor = new SingleFieldsVisitor(data.fieldType(), values);
                 try {
                     reader.document(docId, visitor);

+ 6 - 5
server/src/main/java/org/elasticsearch/search/lookup/SourceLookup.java

@@ -36,7 +36,7 @@ import java.util.Set;
 
 import static java.util.Collections.emptyMap;
 
-public class SourceLookup implements Map {
+public class SourceLookup implements Map<String, Object> {
 
     private LeafReader reader;
 
@@ -162,22 +162,22 @@ public class SourceLookup implements Map {
     }
 
     @Override
-    public Set keySet() {
+    public Set<String> keySet() {
         return loadSourceIfNeeded().keySet();
     }
 
     @Override
-    public Collection values() {
+    public Collection<Object> values() {
         return loadSourceIfNeeded().values();
     }
 
     @Override
-    public Set entrySet() {
+    public Set<Map.Entry<String, Object>> entrySet() {
         return loadSourceIfNeeded().entrySet();
     }
 
     @Override
-    public Object put(Object key, Object value) {
+    public Object put(String key, Object value) {
         throw new UnsupportedOperationException();
     }
 
@@ -187,6 +187,7 @@ public class SourceLookup implements Map {
     }
 
     @Override
+    @SuppressWarnings("rawtypes")
     public void putAll(Map m) {
         throw new UnsupportedOperationException();
     }

+ 7 - 0
server/src/main/java/org/elasticsearch/search/suggest/Suggest.java

@@ -82,6 +82,7 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex
         this.hasScoreDocs = filter(CompletionSuggestion.class).stream().anyMatch(CompletionSuggestion::hasScoreDocs);
     }
 
+    @SuppressWarnings("unchecked")
     public Suggest(StreamInput in) throws IOException {
         int suggestionCount = in.readVInt();
         suggestions = new ArrayList<>(suggestionCount);
@@ -103,6 +104,7 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex
         return suggestions.size();
     }
 
+    @SuppressWarnings("unchecked")
     public <T extends Suggestion<? extends Entry<? extends Option>>> T getSuggestion(String name) {
         if (suggestions.isEmpty() || name == null) {
             return null;
@@ -163,6 +165,7 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex
         return new Suggest(suggestions);
     }
 
+    @SuppressWarnings({"unchecked", "rawtypes"})
     public static List<Suggestion<? extends Entry<? extends Option>>> reduce(Map<String, List<Suggest.Suggestion>> groupedSuggestions) {
         List<Suggestion<? extends Entry<? extends Option>>> reduced = new ArrayList<>(groupedSuggestions.size());
         for (Map.Entry<String, List<Suggestion>> unmergedResults : groupedSuggestions.entrySet()) {
@@ -187,6 +190,7 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex
     /**
      * @return only suggestions of type <code>suggestionType</code> contained in this {@link Suggest} instance
      */
+    @SuppressWarnings("unchecked")
     public <T extends Suggestion> List<T> filter(Class<T> suggestionType) {
          return suggestions.stream()
             .filter(suggestion -> suggestion.getClass() == suggestionType)
@@ -214,6 +218,7 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex
     /**
      * The suggestion responses corresponding with the suggestions in the request.
      */
+    @SuppressWarnings("rawtypes")
     public abstract static class Suggestion<T extends Suggestion.Entry> implements Iterable<T>, NamedWriteable, ToXContentFragment {
 
         public static final int TYPE = 0;
@@ -283,6 +288,7 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex
          * Merges the result of another suggestion into this suggestion.
          * For internal usage.
          */
+        @SuppressWarnings("unchecked")
         public Suggestion<T> reduce(List<Suggestion<T>> toReduce) {
             if (toReduce.size() == 1) {
                 return toReduce.get(0);
@@ -359,6 +365,7 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex
         }
 
         @Override
+        @SuppressWarnings("rawtypes")
         public boolean equals(Object other) {
             if (this == other) {
                 return true;

+ 3 - 0
server/src/main/java/org/elasticsearch/threadpool/ThreadPool.java

@@ -141,10 +141,12 @@ public class ThreadPool implements Scheduler, Closeable {
 
     private final ThreadContext threadContext;
 
+    @SuppressWarnings("rawtypes")
     private final Map<String, ExecutorBuilder> builders;
 
     private final ScheduledThreadPoolExecutor scheduler;
 
+    @SuppressWarnings("rawtypes")
     public Collection<ExecutorBuilder> builders() {
         return Collections.unmodifiableCollection(builders.values());
     }
@@ -153,6 +155,7 @@ public class ThreadPool implements Scheduler, Closeable {
         Setting.timeSetting("thread_pool.estimated_time_interval",
             TimeValue.timeValueMillis(200), TimeValue.ZERO, Setting.Property.NodeScope);
 
+    @SuppressWarnings({"rawtypes", "unchecked"})
     public ThreadPool(final Settings settings, final ExecutorBuilder<?>... customBuilders) {
         assert Node.NODE_NAME_SETTING.exists(settings);