diff --git a/core/src/main/java/org/elasticsearch/cluster/node/DiscoveryNode.java b/core/src/main/java/org/elasticsearch/cluster/node/DiscoveryNode.java index 3eea37e2c89..0e8435d0f8e 100644 --- a/core/src/main/java/org/elasticsearch/cluster/node/DiscoveryNode.java +++ b/core/src/main/java/org/elasticsearch/cluster/node/DiscoveryNode.java @@ -198,7 +198,7 @@ public class DiscoveryNode implements Writeable, ToXContent { /** extract node roles from the given settings */ public static Set getRolesFromSettings(Settings settings) { - Set roles = new HashSet<>(); + Set roles = EnumSet.noneOf(Role.class); if (Node.NODE_INGEST_SETTING.get(settings)) { roles.add(Role.INGEST); } diff --git a/core/src/main/java/org/elasticsearch/cluster/routing/allocation/AllocateUnassignedDecision.java b/core/src/main/java/org/elasticsearch/cluster/routing/allocation/AllocateUnassignedDecision.java index 49b9604e345..decdafd724c 100644 --- a/core/src/main/java/org/elasticsearch/cluster/routing/allocation/AllocateUnassignedDecision.java +++ b/core/src/main/java/org/elasticsearch/cluster/routing/allocation/AllocateUnassignedDecision.java @@ -31,7 +31,7 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import java.io.IOException; import java.util.Collections; -import java.util.HashMap; +import java.util.EnumMap; import java.util.List; import java.util.Map; import java.util.Objects; @@ -49,7 +49,7 @@ public class AllocateUnassignedDecision extends AbstractAllocationDecision { */ private static final Map CACHED_DECISIONS; static { - Map cachedDecisions = new HashMap<>(); + Map cachedDecisions = new EnumMap<>(AllocationStatus.class); cachedDecisions.put(AllocationStatus.FETCHING_SHARD_DATA, new AllocateUnassignedDecision(AllocationStatus.FETCHING_SHARD_DATA, null, null, null, false, 0L, 0L)); cachedDecisions.put(AllocationStatus.NO_VALID_SHARD_COPY, diff --git a/core/src/main/java/org/elasticsearch/common/settings/SecureSetting.java b/core/src/main/java/org/elasticsearch/common/settings/SecureSetting.java index 2efb36696c5..e93240b9a32 100644 --- a/core/src/main/java/org/elasticsearch/common/settings/SecureSetting.java +++ b/core/src/main/java/org/elasticsearch/common/settings/SecureSetting.java @@ -21,12 +21,9 @@ package org.elasticsearch.common.settings; import java.io.InputStream; import java.security.GeneralSecurityException; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Objects; +import java.util.EnumSet; import java.util.Set; -import org.elasticsearch.common.Strings; import org.elasticsearch.common.util.ArrayUtils; @@ -36,9 +33,7 @@ import org.elasticsearch.common.util.ArrayUtils; * This class allows access to settings from the Elasticsearch keystore. */ public abstract class SecureSetting extends Setting { - private static final Set ALLOWED_PROPERTIES = new HashSet<>( - Arrays.asList(Property.Deprecated, Property.Shared) - ); + private static final Set ALLOWED_PROPERTIES = EnumSet.of(Property.Deprecated, Property.Shared); private static final Property[] FIXED_PROPERTIES = { Property.NodeScope diff --git a/core/src/main/java/org/elasticsearch/common/unit/TimeValue.java b/core/src/main/java/org/elasticsearch/common/unit/TimeValue.java index 4ab91aac5b5..4c3344eb9d8 100644 --- a/core/src/main/java/org/elasticsearch/common/unit/TimeValue.java +++ b/core/src/main/java/org/elasticsearch/common/unit/TimeValue.java @@ -31,6 +31,7 @@ import org.joda.time.format.PeriodFormatter; import java.io.IOException; import java.util.Collections; +import java.util.EnumMap; import java.util.HashMap; import java.util.HashSet; import java.util.Locale; @@ -48,7 +49,7 @@ public class TimeValue implements Writeable, Comparable { private static Map BYTE_TIME_UNIT_MAP; static { - final Map timeUnitByteMap = new HashMap<>(); + final Map timeUnitByteMap = new EnumMap<>(TimeUnit.class); timeUnitByteMap.put(TimeUnit.NANOSECONDS, (byte)0); timeUnitByteMap.put(TimeUnit.MICROSECONDS, (byte)1); timeUnitByteMap.put(TimeUnit.MILLISECONDS, (byte)2); diff --git a/core/src/main/java/org/elasticsearch/ingest/IngestDocument.java b/core/src/main/java/org/elasticsearch/ingest/IngestDocument.java index 02d3988c4a8..fcf49ef6992 100644 --- a/core/src/main/java/org/elasticsearch/ingest/IngestDocument.java +++ b/core/src/main/java/org/elasticsearch/ingest/IngestDocument.java @@ -31,6 +31,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Base64; import java.util.Date; +import java.util.EnumMap; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -554,7 +555,7 @@ public final class IngestDocument { * Metadata fields that used to be accessible as ordinary top level fields will be removed as part of this call. */ public Map extractMetadata() { - Map metadataMap = new HashMap<>(); + Map metadataMap = new EnumMap<>(MetaData.class); for (MetaData metaData : MetaData.values()) { metadataMap.put(metaData, cast(metaData.getFieldName(), sourceAndMetadata.remove(metaData.getFieldName()), String.class)); } diff --git a/core/src/main/java/org/elasticsearch/script/ScriptSettings.java b/core/src/main/java/org/elasticsearch/script/ScriptSettings.java index 447097a4884..e4387aa52dd 100644 --- a/core/src/main/java/org/elasticsearch/script/ScriptSettings.java +++ b/core/src/main/java/org/elasticsearch/script/ScriptSettings.java @@ -25,6 +25,7 @@ import org.elasticsearch.common.settings.Settings; import java.util.ArrayList; import java.util.Collections; +import java.util.EnumMap; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -35,7 +36,7 @@ public class ScriptSettings { private static final Map> SCRIPT_TYPE_SETTING_MAP; static { - Map> scriptTypeSettingMap = new HashMap<>(); + Map> scriptTypeSettingMap = new EnumMap<>(ScriptType.class); for (ScriptType scriptType : ScriptType.values()) { scriptTypeSettingMap.put(scriptType, Setting.boolSetting( ScriptModes.sourceKey(scriptType), diff --git a/core/src/main/java/org/elasticsearch/search/internal/SearchContext.java b/core/src/main/java/org/elasticsearch/search/internal/SearchContext.java index 59d3646f18f..ebb2157d981 100644 --- a/core/src/main/java/org/elasticsearch/search/internal/SearchContext.java +++ b/core/src/main/java/org/elasticsearch/search/internal/SearchContext.java @@ -63,7 +63,7 @@ import org.elasticsearch.search.sort.SortAndFormats; import org.elasticsearch.search.suggest.SuggestionSearchContext; import java.util.ArrayList; -import java.util.HashMap; +import java.util.EnumMap; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; @@ -336,7 +336,7 @@ public abstract class SearchContext extends AbstractRefCounted implements Releas */ public void addReleasable(Releasable releasable, Lifetime lifetime) { if (clearables == null) { - clearables = new HashMap<>(); + clearables = new EnumMap<>(Lifetime.class); } List releasables = clearables.get(lifetime); if (releasables == null) { diff --git a/test/framework/src/main/java/org/elasticsearch/AnalysisFactoryTestCase.java b/test/framework/src/main/java/org/elasticsearch/AnalysisFactoryTestCase.java index 7f60058788a..d49a1b4cae5 100644 --- a/test/framework/src/main/java/org/elasticsearch/AnalysisFactoryTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/AnalysisFactoryTestCase.java @@ -98,6 +98,7 @@ import org.elasticsearch.indices.analysis.PreBuiltTokenizers; import org.elasticsearch.test.ESTestCase; import java.util.Collection; +import java.util.EnumMap; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -152,7 +153,7 @@ public class AnalysisFactoryTestCase extends ESTestCase { static final Map> PREBUILT_TOKENIZERS; static { - PREBUILT_TOKENIZERS = new HashMap<>(); + PREBUILT_TOKENIZERS = new EnumMap<>(PreBuiltTokenizers.class); for (PreBuiltTokenizers tokenizer : PreBuiltTokenizers.values()) { Class luceneFactoryClazz; switch (tokenizer) { @@ -289,7 +290,7 @@ public class AnalysisFactoryTestCase extends ESTestCase { static final Map> PREBUILT_TOKENFILTERS; static { - PREBUILT_TOKENFILTERS = new HashMap<>(); + PREBUILT_TOKENFILTERS = new EnumMap<>(PreBuiltTokenFilters.class); for (PreBuiltTokenFilters tokenizer : PreBuiltTokenFilters.values()) { Class luceneFactoryClazz; switch (tokenizer) { @@ -335,7 +336,7 @@ public class AnalysisFactoryTestCase extends ESTestCase { static final Map> PREBUILT_CHARFILTERS; static { - PREBUILT_CHARFILTERS = new HashMap<>(); + PREBUILT_CHARFILTERS = new EnumMap<>(PreBuiltCharFilters.class); for (PreBuiltCharFilters tokenizer : PreBuiltCharFilters.values()) { Class luceneFactoryClazz; switch (tokenizer) { diff --git a/test/framework/src/main/java/org/elasticsearch/cluster/ESAllocationTestCase.java b/test/framework/src/main/java/org/elasticsearch/cluster/ESAllocationTestCase.java index a0cc0130bfc..02f8896be4d 100644 --- a/test/framework/src/main/java/org/elasticsearch/cluster/ESAllocationTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/cluster/ESAllocationTestCase.java @@ -43,7 +43,7 @@ import org.elasticsearch.test.gateway.TestGatewayAllocator; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashSet; +import java.util.EnumSet; import java.util.List; import java.util.Map; import java.util.Random; @@ -95,7 +95,7 @@ public abstract class ESAllocationTestCase extends ESTestCase { } protected static Set MASTER_DATA_ROLES = - Collections.unmodifiableSet(new HashSet<>(Arrays.asList(DiscoveryNode.Role.MASTER, DiscoveryNode.Role.DATA))); + Collections.unmodifiableSet(EnumSet.of(DiscoveryNode.Role.MASTER, DiscoveryNode.Role.DATA)); protected static DiscoveryNode newNode(String nodeId) { return newNode(nodeId, Version.CURRENT); diff --git a/test/framework/src/main/java/org/elasticsearch/test/ClusterServiceUtils.java b/test/framework/src/main/java/org/elasticsearch/test/ClusterServiceUtils.java index 01f626a1e2b..b2eced6fd35 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/ClusterServiceUtils.java +++ b/test/framework/src/main/java/org/elasticsearch/test/ClusterServiceUtils.java @@ -33,7 +33,7 @@ import org.elasticsearch.threadpool.ThreadPool; import java.util.Arrays; import java.util.Collections; -import java.util.HashSet; +import java.util.EnumSet; import java.util.concurrent.CountDownLatch; import static junit.framework.TestCase.fail; @@ -42,7 +42,7 @@ public class ClusterServiceUtils { public static ClusterService createClusterService(ThreadPool threadPool) { DiscoveryNode discoveryNode = new DiscoveryNode("node", ESTestCase.buildNewFakeTransportAddress(), Collections.emptyMap(), - new HashSet<>(Arrays.asList(DiscoveryNode.Role.values())),Version.CURRENT); + EnumSet.allOf(DiscoveryNode.Role.class), Version.CURRENT); return createClusterService(threadPool, discoveryNode); } diff --git a/test/framework/src/main/java/org/elasticsearch/test/PosixPermissionsResetter.java b/test/framework/src/main/java/org/elasticsearch/test/PosixPermissionsResetter.java index a644205bad9..19bea3802f0 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/PosixPermissionsResetter.java +++ b/test/framework/src/main/java/org/elasticsearch/test/PosixPermissionsResetter.java @@ -18,6 +18,8 @@ */ package org.elasticsearch.test; +import java.util.EnumSet; +import java.util.Set; import org.junit.Assert; import java.io.IOException; @@ -25,8 +27,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.attribute.PosixFileAttributeView; import java.nio.file.attribute.PosixFilePermission; -import java.util.HashSet; -import java.util.Set; /** Stores the posix attributes for a path and resets them on close. */ public class PosixPermissionsResetter implements AutoCloseable { @@ -46,6 +46,6 @@ public class PosixPermissionsResetter implements AutoCloseable { } public Set getCopyPermissions() { - return new HashSet<>(permissions); + return EnumSet.copyOf(permissions); } }