diff --git a/build-tools/missing-doclet/src/main/java/org/apache/lucene/missingdoclet/MissingDoclet.java b/build-tools/missing-doclet/src/main/java/org/apache/lucene/missingdoclet/MissingDoclet.java index 14487731f6fb..823e86d21b8d 100644 --- a/build-tools/missing-doclet/src/main/java/org/apache/lucene/missingdoclet/MissingDoclet.java +++ b/build-tools/missing-doclet/src/main/java/org/apache/lucene/missingdoclet/MissingDoclet.java @@ -25,7 +25,6 @@ import java.util.List; import java.util.Locale; import java.util.Set; -import java.util.stream.Collectors; import java.util.stream.Stream; import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; @@ -65,8 +64,8 @@ public class MissingDoclet extends StandardDoclet { DocletEnvironment docEnv; DocTrees docTrees; Elements elementUtils; - Set ignored = Collections.emptySet(); - Set methodPackages = Collections.emptySet(); + Set ignored = Set.of(); + Set methodPackages = Set.of(); @Override public Set getSupportedOptions() { @@ -373,7 +372,7 @@ private Stream superTypeForInheritDoc(Element type) { clazz.getInterfaces().stream() .filter(tm -> tm.getKind() == TypeKind.DECLARED) .map(tm -> ((DeclaredType) tm).asElement()) - .collect(Collectors.toList()); + .toList(); Stream result = interfaces.stream(); result = Stream.concat(result, interfaces.stream().flatMap(this::superTypeForInheritDoc)); diff --git a/gradle/validation/forbidden-apis/defaults.all.txt b/gradle/validation/forbidden-apis/defaults.all.txt index f5ca3ae746f0..eeab02a0dca8 100644 --- a/gradle/validation/forbidden-apis/defaults.all.txt +++ b/gradle/validation/forbidden-apis/defaults.all.txt @@ -54,6 +54,15 @@ java.io.File#delete() @ use Files.delete for real exception, IOUtils.deleteFiles java.util.Collections#shuffle(java.util.List) @ Use shuffle(List, Random) instead so that it can be reproduced +@defaultMessage Use List.of() +java.util.Collections#emptyList() + +@defaultMessage Use Set.of() +java.util.Collections#emptySet() + +@defaultMessage Use Map.of() +java.util.Collections#emptyMap() + java.util.Locale#forLanguageTag(java.lang.String) @ use new Locale.Builder().setLanguageTag(...).build() which has error handling java.util.Locale#toString() @ use Locale#toLanguageTag() for a standardized BCP47 locale name @@ -102,4 +111,4 @@ java.nio.file.Paths#get(**) java.nio.file.Path#startsWith(java.lang.String) @defaultMessage Use NIO Path instead of File -java.io.File \ No newline at end of file +java.io.File diff --git a/solr/benchmark/src/java/org/apache/solr/bench/generators/RandomDataHistogram.java b/solr/benchmark/src/java/org/apache/solr/bench/generators/RandomDataHistogram.java index 8cd55a7964af..41a7e8a439b0 100644 --- a/solr/benchmark/src/java/org/apache/solr/bench/generators/RandomDataHistogram.java +++ b/solr/benchmark/src/java/org/apache/solr/bench/generators/RandomDataHistogram.java @@ -23,7 +23,6 @@ import java.math.RoundingMode; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Locale; @@ -509,7 +508,7 @@ public String print(boolean sortByLabel, int bucketed) { } return Integer.compare(e2.getValue().get(), e1.getValue().get()); }) - .filter(entry -> !entry.getKey().equals(Collections.emptyList())) + .filter(entry -> !entry.getKey().equals(List.of())) .map( entry -> { double percentage = entry.getValue().get() * 100.0 / sum; 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 26688037c21e..89cf2796084c 100644 --- a/solr/core/src/java/org/apache/solr/api/ApiBag.java +++ b/solr/core/src/java/org/apache/solr/api/ApiBag.java @@ -75,13 +75,13 @@ public ApiBag(boolean isCoreSpecific) { public synchronized List registerObject(Object o) { List l = AnnotatedApi.getApis(o); for (Api api : l) { - register(api, Collections.emptyMap()); + register(api, Map.of()); } return l; } public synchronized void register(Api api) { - register(api, Collections.emptyMap()); + register(api, Map.of()); } public synchronized void register(Api api, Map nameSubstitutes) { diff --git a/solr/core/src/java/org/apache/solr/api/ApiSupport.java b/solr/core/src/java/org/apache/solr/api/ApiSupport.java index efeffcad773a..f77ed2569327 100644 --- a/solr/core/src/java/org/apache/solr/api/ApiSupport.java +++ b/solr/core/src/java/org/apache/solr/api/ApiSupport.java @@ -18,7 +18,7 @@ package org.apache.solr.api; import java.util.Collection; -import java.util.Collections; +import java.util.Set; /** The interface that is implemented by a request handler to support the V2 end point */ public interface ApiSupport { @@ -36,7 +36,7 @@ public interface ApiSupport { * @see #getApis() */ default Collection> getJerseyResources() { - return Collections.emptySet(); + return Set.of(); } /** Whether this should be made available at the regular legacy path */ diff --git a/solr/core/src/java/org/apache/solr/api/ContainerPluginsRegistry.java b/solr/core/src/java/org/apache/solr/api/ContainerPluginsRegistry.java index 20cd2440bbe3..5f6a2e5a0888 100644 --- a/solr/core/src/java/org/apache/solr/api/ContainerPluginsRegistry.java +++ b/solr/core/src/java/org/apache/solr/api/ContainerPluginsRegistry.java @@ -31,7 +31,6 @@ import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -424,7 +423,7 @@ public void init() throws Exception { throw new RuntimeException("Must have a no-arg constructor or CoreContainer constructor "); } Map config = - (Map) holder.original.getOrDefault("config", Collections.emptyMap()); + (Map) holder.original.getOrDefault("config", Map.of()); configure(instance, config, holder.meta); if (instance instanceof ResourceLoaderAware) { try { 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 f8a9daa23891..04ea7c6ee9ee 100644 --- a/solr/core/src/java/org/apache/solr/api/V2HttpCall.java +++ b/solr/core/src/java/org/apache/solr/api/V2HttpCall.java @@ -29,7 +29,6 @@ import java.io.IOException; import java.lang.invoke.MethodHandles; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; @@ -488,7 +487,7 @@ private String computeEndpointPath() { // myColName -> collection final Map pathTemplateValKey; if (pathTemplateKeyVal.isEmpty()) { // typical - pathTemplateValKey = Collections.emptyMap(); + pathTemplateValKey = Map.of(); } else if (pathTemplateKeyVal.size() == 1) { // typical Map.Entry entry = pathTemplateKeyVal.entrySet().iterator().next(); pathTemplateValKey = Map.of(entry.getValue(), entry.getKey()); 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 7b3300379e95..91ffff8d4bad 100644 --- a/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java +++ b/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java @@ -18,7 +18,6 @@ import java.io.IOException; import java.lang.invoke.MethodHandles; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -136,7 +135,7 @@ public static Map getTrustedKeys(SolrZkClient zk, String dir) { } } catch (KeeperException.NoNodeException e) { log.info("Error fetching key names"); - return Collections.emptyMap(); + return Map.of(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new SolrException(ErrorCode.SERVER_ERROR, "Unable to read crypto keys", e); diff --git a/solr/core/src/java/org/apache/solr/cloud/DistributedClusterStateUpdater.java b/solr/core/src/java/org/apache/solr/cloud/DistributedClusterStateUpdater.java index f64b71dba049..6d686e13d79a 100644 --- a/solr/core/src/java/org/apache/solr/cloud/DistributedClusterStateUpdater.java +++ b/solr/core/src/java/org/apache/solr/cloud/DistributedClusterStateUpdater.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.Set; import org.apache.solr.client.solrj.cloud.SolrCloudManager; @@ -387,7 +388,7 @@ private void applyUpdate() throws KeeperException, InterruptedException { // For now trying to diverge as little as possible from existing data structures and code // given the need to support both the old way (Overseer) and new way (distributed) of handling // cluster state update. - final Set liveNodes = Collections.emptySet(); + final Set liveNodes = Set.of(); // Per Replica States updates are done before all other updates and not subject to the number // of attempts of CAS made here, given they have their own CAS strategy and implementation @@ -412,7 +413,7 @@ private void applyUpdate() throws KeeperException, InterruptedException { // state. Knowing about all collections in the cluster might not be needed. ClusterState initialClusterState; if (updater.isCollectionCreation()) { - initialClusterState = new ClusterState(liveNodes, Collections.emptyMap()); + initialClusterState = new ClusterState(liveNodes, Map.of()); } else { // Get the state for existing data in ZK (and if no data exists we should fail) initialClusterState = fetchStateForCollection(); @@ -586,7 +587,7 @@ private ClusterState fetchStateForCollection() throws KeeperException, Interrupt ZkClientClusterStateProvider.createFromJsonSupportingLegacyConfigName( stat.getVersion(), data, - Collections.emptySet(), + Set.of(), updater.getCollectionName(), zkStateReader.getZkClient(), Instant.ofEpochMilli(stat.getCtime())); diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkConfigSetService.java b/solr/core/src/java/org/apache/solr/cloud/ZkConfigSetService.java index 12cfbc486174..99b4fb2d6750 100644 --- a/solr/core/src/java/org/apache/solr/cloud/ZkConfigSetService.java +++ b/solr/core/src/java/org/apache/solr/cloud/ZkConfigSetService.java @@ -234,7 +234,7 @@ public Map getConfigMetadata(String configName) throws IOExcepti Utils.fromJSON(zkClient.getData(CONFIGS_ZKNODE + "/" + configName, null, null)); return data; } catch (KeeperException.NoNodeException e) { - return Collections.emptyMap(); + return Map.of(); } catch (KeeperException | InterruptedException e) { throw new IOException("Error getting config metadata", SolrZkClient.checkInterrupted(e)); } @@ -261,7 +261,7 @@ public List listConfigs() throws IOException { try { return zkClient.getChildren(CONFIGS_ZKNODE, null); } catch (KeeperException.NoNodeException e) { - return Collections.emptyList(); + return List.of(); } catch (KeeperException | InterruptedException e) { throw new IOException("Error listing configs", SolrZkClient.checkInterrupted(e)); } diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkDistributedQueue.java b/solr/core/src/java/org/apache/solr/cloud/ZkDistributedQueue.java index ca27ab37bd86..ec312447d441 100644 --- a/solr/core/src/java/org/apache/solr/cloud/ZkDistributedQueue.java +++ b/solr/core/src/java/org/apache/solr/cloud/ZkDistributedQueue.java @@ -21,7 +21,6 @@ import java.lang.invoke.MethodHandles; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -345,7 +344,7 @@ public Stats getZkStats() { @Override public Map getStats() { if (stats == null) { - return Collections.emptyMap(); + return Map.of(); } Map res = new HashMap<>(); res.put("queueLength", stats.getQueueLength()); diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/Assign.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/Assign.java index 13caeea36ec6..4c260c9ab9e2 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/Assign.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/Assign.java @@ -398,7 +398,7 @@ List assign( default Map computeReplicaBalancing( SolrCloudManager solrCloudManager, Set nodes, int maxBalanceSkew) throws AssignmentException, IOException, InterruptedException { - return Collections.emptyMap(); + return Map.of(); } /** diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/BackupCmd.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/BackupCmd.java index 04b2a1417bb7..f1ee97f58db2 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/BackupCmd.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/BackupCmd.java @@ -26,10 +26,10 @@ import java.net.URI; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Set; import org.apache.solr.cloud.api.collections.CollectionHandlingUtils.ShardRequestTracker; import org.apache.solr.common.SolrException; import org.apache.solr.common.SolrException.ErrorCode; @@ -168,7 +168,7 @@ public void call(AdminCmdContext adminCmdContext, ZkNodeProps message, NamedList backupMgr.downloadConfigDir(configName, cc.getConfigSetService()); } - // Save the collection's state. Can be part of the monolithic clusterstate.json or a + // Save the collection's state. Can be part of the monolithic clusterstate.json or an // individual state.json. Since we don't want to distinguish we extract the state and back it // up as a separate json DocCollection collectionState = @@ -285,7 +285,7 @@ private Replica selectReplicaWithSnapshot(CollectionSnapshotMetaData snapshotMet x.getState() != State.DOWN && snapshotMeta.isSnapshotExists(slice.getName(), x)) .findFirst(); - if (!r.isPresent()) { + if (r.isEmpty()) { throw new SolrException( ErrorCode.SERVER_ERROR, "Unable to find any live replica with a snapshot named " @@ -462,7 +462,7 @@ private void copyIndexFiles( SolrZkClient zkClient = ccc.getZkStateReader().getZkClient(); snapshotMeta = SolrSnapshotManager.getCollectionLevelSnapshot(zkClient, collectionName, commitName); - if (!snapshotMeta.isPresent()) { + if (snapshotMeta.isEmpty()) { throw new SolrException( ErrorCode.BAD_REQUEST, "Snapshot with name " @@ -488,7 +488,7 @@ private void copyIndexFiles( backupName, backupPath); - Collection shardsToConsider = Collections.emptySet(); + Collection shardsToConsider = Set.of(); if (snapshotMeta.isPresent()) { shardsToConsider = snapshotMeta.get().getShards(); } diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/BalanceReplicasCmd.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/BalanceReplicasCmd.java index 9d1acfb27b5e..743d9f5847fc 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/BalanceReplicasCmd.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/BalanceReplicasCmd.java @@ -18,7 +18,6 @@ package org.apache.solr.cloud.api.collections; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -43,7 +42,7 @@ public void call(AdminCmdContext adminCmdContext, ZkNodeProps message, NamedList Set nodes; Object nodesRaw = message.get(CollectionParams.NODES); if (nodesRaw == null) { - nodes = Collections.emptySet(); + nodes = Set.of(); } else if (nodesRaw instanceof Set) { nodes = (Set) nodesRaw; } else if (nodesRaw instanceof Collection) { diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java index b9b7f1afca72..c787fdc80ce1 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java @@ -21,7 +21,6 @@ import java.lang.invoke.MethodHandles; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; @@ -260,7 +259,7 @@ protected List calculateActions(String targetCol) { } return actionList; } else { - return Collections.emptyList(); + return List.of(); } } } diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/CollApiCmds.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/CollApiCmds.java index 3840683d6eff..ab8a8c58e4c2 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/CollApiCmds.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/CollApiCmds.java @@ -70,10 +70,10 @@ import io.opentelemetry.api.trace.Span; import io.opentelemetry.context.Context; import java.lang.invoke.MethodHandles; -import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import org.apache.solr.cloud.DistributedClusterStateUpdater; @@ -275,13 +275,7 @@ public void call( params.set(CoreAdminParams.ACTION, CoreAdminParams.CoreAdminAction.RELOAD.toString()); CollectionHandlingUtils.collectionCmd( - adminCmdContext, - message, - params, - results, - Replica.State.ACTIVE, - Collections.emptySet(), - ccc); + adminCmdContext, message, params, results, Replica.State.ACTIVE, Set.of(), ccc); } } diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/CollectionHandlingUtils.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/CollectionHandlingUtils.java index b51562aa5ffc..f5e030d81e54 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/CollectionHandlingUtils.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/CollectionHandlingUtils.java @@ -237,7 +237,7 @@ static void commit( parentShardLeader.getName(), updateResponse, slice, - Collections.emptySet(), + Set.of(), null); } catch (Exception e) { CollectionHandlingUtils.processResponse( @@ -247,7 +247,7 @@ static void commit( parentShardLeader.getCoreName(), updateResponse, slice, - Collections.emptySet(), + Set.of(), null); throw new SolrException( SolrException.ErrorCode.SERVER_ERROR, @@ -742,7 +742,7 @@ void processResponses( ShardHandler shardHandler, boolean abortOnError, String msgOnError) { - processResponses(results, shardHandler, abortOnError, msgOnError, Collections.emptySet()); + processResponses(results, shardHandler, abortOnError, msgOnError, Set.of()); } void processResponses( diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/CreateCollectionCmd.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/CreateCollectionCmd.java index ff2d92378f30..bc70f3bc9559 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/CreateCollectionCmd.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/CreateCollectionCmd.java @@ -39,6 +39,7 @@ import java.util.Map; import java.util.NoSuchElementException; import java.util.Objects; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; @@ -415,8 +416,7 @@ public void call(AdminCmdContext adminCmdContext, ZkNodeProps message, NamedList nodeName, replicas.get(e.getKey()).getCoreName(), params, shardHandler); } - shardRequestTracker.processResponses( - results, shardHandler, false, null, Collections.emptySet()); + shardRequestTracker.processResponses(results, shardHandler, false, null, Set.of()); boolean failure = results.get("failure") != null && ((SimpleOrderedMap) results.get("failure")).size() > 0; diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/MigrateReplicasCmd.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/MigrateReplicasCmd.java index e4381ad888e7..a45a64f46973 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/MigrateReplicasCmd.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/MigrateReplicasCmd.java @@ -134,7 +134,7 @@ public void call(AdminCmdContext adminCmdContext, ZkNodeProps message, NamedList protected Set getNodesFromParam(ZkNodeProps message, String paramName) { Object rawParam = message.get(paramName); if (rawParam == null) { - return Collections.emptySet(); + return Set.of(); } else if (rawParam instanceof Set) { return (Set) rawParam; } else if (rawParam instanceof Collection) { diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/RestoreCmd.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/RestoreCmd.java index 93df952eb271..c4ef360fa581 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/RestoreCmd.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/RestoreCmd.java @@ -34,7 +34,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -369,7 +368,7 @@ private void createCoreLessCollection( backupSlice.getName(), new Slice( backupSlice.getName(), - Collections.emptyMap(), + Map.of(), backupSlice.getProperties(), restoreCollectionName)); } diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java index 8d8a85d105e2..fd8b1cab5525 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java @@ -590,7 +590,7 @@ private CandidateCollection calcCandidateCollection(Instant docTimestamp) { private List calcDeletes(List actions) { final String autoDeleteAgeMathStr = this.getAutoDeleteAgeMath(); if (autoDeleteAgeMathStr == null || actions.size() == 0) { - return Collections.emptyList(); + return List.of(); } if (actions.size() > 1) { throw new IllegalStateException( @@ -675,7 +675,7 @@ private List calcAdd(String targetCol) { String nextCol = calcNextCollection(parsed); return Collections.singletonList(new Action(this, ActionType.ENSURE_EXISTS, nextCol)); } else { - return Collections.emptyList(); + return List.of(); } } 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 879a440ccf94..1cf36d87f15b 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 @@ -22,7 +22,6 @@ import static org.apache.solr.common.params.CollectionAdminParams.COLL_CONF; import java.lang.invoke.MethodHandles; -import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; @@ -63,7 +62,7 @@ public ZkWriteCommand createShard(final ClusterState clusterState, ZkNodeProps m DocCollection collection = clusterState.getCollection(collectionName); Slice slice = collection.getSlice(shardId); if (slice == null) { - Map replicas = Collections.emptyMap(); + Map replicas = Map.of(); Map sliceProps = new HashMap<>(); String shardRange = message.getStr(ZkStateReader.SHARD_RANGE_PROP); String shardState = message.getStr(ZkStateReader.SHARD_STATE_PROP); diff --git a/solr/core/src/java/org/apache/solr/cluster/events/ClusterEventProducerBase.java b/solr/core/src/java/org/apache/solr/cluster/events/ClusterEventProducerBase.java index 6a92ceab140e..ee16baf41fe0 100644 --- a/solr/core/src/java/org/apache/solr/cluster/events/ClusterEventProducerBase.java +++ b/solr/core/src/java/org/apache/solr/cluster/events/ClusterEventProducerBase.java @@ -18,7 +18,6 @@ import java.io.IOException; import java.lang.invoke.MethodHandles; -import java.util.Collections; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -96,7 +95,7 @@ public void close() throws IOException { protected void fireEvent(ClusterEvent event) { synchronized (listeners) { listeners - .getOrDefault(event.getType(), Collections.emptySet()) + .getOrDefault(event.getType(), Set.of()) .forEach( listener -> { if (log.isDebugEnabled()) { diff --git a/solr/core/src/java/org/apache/solr/cluster/placement/impl/AttributeFetcherImpl.java b/solr/core/src/java/org/apache/solr/cluster/placement/impl/AttributeFetcherImpl.java index a8c918cb32c0..2aa4203f91af 100644 --- a/solr/core/src/java/org/apache/solr/cluster/placement/impl/AttributeFetcherImpl.java +++ b/solr/core/src/java/org/apache/solr/cluster/placement/impl/AttributeFetcherImpl.java @@ -17,7 +17,6 @@ package org.apache.solr.cluster.placement.impl; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -46,7 +45,7 @@ public class AttributeFetcherImpl implements AttributeFetcher { Set> requestedNodeMetricSnitchTags = new HashSet<>(); Map>> requestedCollectionMetrics = new HashMap<>(); - Set nodes = Collections.emptySet(); + Set nodes = Set.of(); private final SolrCloudManager cloudManager; diff --git a/solr/core/src/java/org/apache/solr/cluster/placement/plugins/AffinityPlacementConfig.java b/solr/core/src/java/org/apache/solr/cluster/placement/plugins/AffinityPlacementConfig.java index ae285dcacb25..8faa95f2e785 100644 --- a/solr/core/src/java/org/apache/solr/cluster/placement/plugins/AffinityPlacementConfig.java +++ b/solr/core/src/java/org/apache/solr/cluster/placement/plugins/AffinityPlacementConfig.java @@ -187,12 +187,7 @@ public AffinityPlacementConfig( long prioritizedFreeDiskGB, Map withCollection, Map collectionNodeType) { - this( - minimalFreeDiskGB, - prioritizedFreeDiskGB, - withCollection, - Collections.emptyMap(), - collectionNodeType); + this(minimalFreeDiskGB, prioritizedFreeDiskGB, withCollection, Map.of(), collectionNodeType); } public void validate() { diff --git a/solr/core/src/java/org/apache/solr/cluster/placement/plugins/AffinityPlacementFactory.java b/solr/core/src/java/org/apache/solr/cluster/placement/plugins/AffinityPlacementFactory.java index 12f86137e5d9..61057525802e 100644 --- a/solr/core/src/java/org/apache/solr/cluster/placement/plugins/AffinityPlacementFactory.java +++ b/solr/core/src/java/org/apache/solr/cluster/placement/plugins/AffinityPlacementFactory.java @@ -337,7 +337,7 @@ AffinityNode newNodeFromMetrics( Optional nodePropOpt = attrValues.getSystemProperty(node, AffinityPlacementConfig.NODE_TYPE_SYSPROP); if (nodePropOpt.isEmpty()) { - nodeType = Collections.emptySet(); + nodeType = Set.of(); } else { nodeType = new HashSet<>(StrUtils.splitSmart(nodePropOpt.get(), ',')); } diff --git a/solr/core/src/java/org/apache/solr/cluster/placement/plugins/OrderedNodePlacementPlugin.java b/solr/core/src/java/org/apache/solr/cluster/placement/plugins/OrderedNodePlacementPlugin.java index 9d2741315fab..8eaaa13089e0 100644 --- a/solr/core/src/java/org/apache/solr/cluster/placement/plugins/OrderedNodePlacementPlugin.java +++ b/solr/core/src/java/org/apache/solr/cluster/placement/plugins/OrderedNodePlacementPlugin.java @@ -21,7 +21,6 @@ import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Comparator; import java.util.Deque; import java.util.HashMap; @@ -439,13 +438,13 @@ public boolean hasCollectionOnNode(String collection) { } public Set getShardsOnNode(String collection) { - return replicas.getOrDefault(collection, Collections.emptyMap()).keySet(); + return replicas.getOrDefault(collection, Map.of()).keySet(); } public Set getReplicasForShardOnNode(Shard shard) { return Optional.ofNullable(replicas.get(shard.getCollection().getName())) .map(m -> m.get(shard.getShardName())) - .orElseGet(Collections::emptySet); + .orElseGet(Set::of); } public abstract int calcWeight(); @@ -499,7 +498,7 @@ public final boolean addReplica(Replica replica) { * removed. */ public Map canRemoveReplicas(Collection replicas) { - return Collections.emptyMap(); + return Map.of(); } public final void removeReplica(Replica replica) { @@ -884,7 +883,7 @@ public Collection getOutstandingReplicaTypes(String shard) .map(Map::keySet) // Use a sorted TreeSet to make sure that tests are repeatable .>map(TreeSet::new) - .orElseGet(Collections::emptyList); + .orElseGet(List::of); } /** diff --git a/solr/core/src/java/org/apache/solr/core/ConfigOverlay.java b/solr/core/src/java/org/apache/solr/core/ConfigOverlay.java index 811ea865cd60..480df900f839 100644 --- a/solr/core/src/java/org/apache/solr/core/ConfigOverlay.java +++ b/solr/core/src/java/org/apache/solr/core/ConfigOverlay.java @@ -41,13 +41,13 @@ public class ConfigOverlay implements MapSerializable { @SuppressWarnings({"unchecked"}) public ConfigOverlay(Map jsonObj, int version) { - if (jsonObj == null) jsonObj = Collections.emptyMap(); + if (jsonObj == null) jsonObj = Map.of(); this.version = version; data = Collections.unmodifiableMap(jsonObj); props = (Map) data.get("props"); - if (props == null) props = Collections.emptyMap(); + if (props == null) props = Map.of(); userProps = (Map) data.get("userProps"); - if (userProps == null) userProps = Collections.emptyMap(); + if (userProps == null) userProps = Map.of(); } public Object getXPathProperty(String xpath) { @@ -242,7 +242,7 @@ public Map toMap(Map map) { @SuppressWarnings({"unchecked"}) public Map> getNamedPlugins(String typ) { Map> reqHandlers = (Map>) data.get(typ); - if (reqHandlers == null) return Collections.emptyMap(); + if (reqHandlers == null) return Map.of(); return Collections.unmodifiableMap(reqHandlers); } diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java index a19f77a2e232..9ca9b377cb2e 100644 --- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java +++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java @@ -799,7 +799,7 @@ private void loadInternal() { Map cachesConfig = cfg.getCachesConfig(); if (cachesConfig.isEmpty()) { - this.caches = Collections.emptyMap(); + this.caches = Map.of(); } else { Map> m = CollectionUtil.newHashMap(cachesConfig.size()); for (Map.Entry e : cachesConfig.entrySet()) { diff --git a/solr/core/src/java/org/apache/solr/core/CoreSorter.java b/solr/core/src/java/org/apache/solr/core/CoreSorter.java index a21e64948e91..d717bc4514af 100644 --- a/solr/core/src/java/org/apache/solr/core/CoreSorter.java +++ b/solr/core/src/java/org/apache/solr/core/CoreSorter.java @@ -17,7 +17,6 @@ package org.apache.solr.core; -import static java.util.Collections.emptyList; import static java.util.stream.Collectors.toList; import java.util.Collection; @@ -47,7 +46,7 @@ public class CoreSorter { if (c1 == null) c1 = zero; // just to avoid NPE if (c2 == null) c2 = zero; if (c1.totalReplicasInDownNodes < c2.totalReplicasInDownNodes) { - // Prioritize replicas with least no:of down nodes waiting. + // Prioritize replicas with the least number of down nodes waiting. // It's better to bring up a node that is a member of a shard // with 0 down nodes than 1 down node because it will make the shard // complete earlier and avoid waiting by the other live nodes @@ -64,9 +63,9 @@ public class CoreSorter { } } - // Prioritize replicas where most no:of other nodes are waiting for - // For example if 1 other replicas are waiting for this replica, then - // prioritize that over the replica were zero other nodes are waiting + // Prioritize replicas where the greatest number of other nodes are waiting. + // For example, if one other replica is waiting for this replica, then + // prioritize that over a replica where zero other nodes are waiting if (c1.totalReplicasInLiveNodes > c2.totalReplicasInLiveNodes) return -1; if (c2.totalReplicasInLiveNodes > c1.totalReplicasInLiveNodes) return 1; @@ -176,9 +175,9 @@ private static String getShardName(CloudDescriptor cd) { /** Return all replicas for a given collection+slice combo */ private Collection getReplicas(ClusterState cs, String coll, String slice) { DocCollection c = cs.getCollectionOrNull(coll); - if (c == null) return emptyList(); + if (c == null) return List.of(); Slice s = c.getSlice(slice); - if (s == null) return emptyList(); + if (s == null) return List.of(); return s.getReplicas(); } } diff --git a/solr/core/src/java/org/apache/solr/core/FileSystemConfigSetService.java b/solr/core/src/java/org/apache/solr/core/FileSystemConfigSetService.java index 3d31349c0668..811e6d91fee1 100644 --- a/solr/core/src/java/org/apache/solr/core/FileSystemConfigSetService.java +++ b/solr/core/src/java/org/apache/solr/core/FileSystemConfigSetService.java @@ -206,7 +206,7 @@ public Map getConfigMetadata(String configName) throws IOExcepti try { data = Files.readAllBytes(metadataPath); } catch (NoSuchFileException e) { - return Collections.emptyMap(); + return Map.of(); } @SuppressWarnings("unchecked") Map metadata = (Map) Utils.fromJSON(data); diff --git a/solr/core/src/java/org/apache/solr/core/NodeConfig.java b/solr/core/src/java/org/apache/solr/core/NodeConfig.java index ad69e6d90f4b..c52cb54e60ec 100644 --- a/solr/core/src/java/org/apache/solr/core/NodeConfig.java +++ b/solr/core/src/java/org/apache/solr/core/NodeConfig.java @@ -22,7 +22,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; -import java.util.Collections; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; @@ -187,7 +186,7 @@ private NodeConfig( this.solrProperties = solrProperties; this.backupRepositoryPlugins = backupRepositoryPlugins; this.metricsConfig = metricsConfig; - this.cachesConfig = cachesConfig == null ? Collections.emptyMap() : cachesConfig; + this.cachesConfig = cachesConfig == null ? Map.of() : cachesConfig; this.tracerConfig = tracerConfig; this.clusterPlugins = clusterPlugins; this.defaultZkHost = defaultZkHost; @@ -581,7 +580,7 @@ public static class NodeConfigBuilder { private UpdateShardHandlerConfig updateShardHandlerConfig = UpdateShardHandlerConfig.DEFAULT; private String configSetServiceClass; private String coreAdminHandlerClass = DEFAULT_ADMINHANDLERCLASS; - private Map coreAdminHandlerActions = Collections.emptyMap(); + private Map coreAdminHandlerActions = Map.of(); private String collectionsAdminHandlerClass = DEFAULT_COLLECTIONSHANDLERCLASS; private String healthCheckHandlerClass = DEFAULT_HEALTHCHECKHANDLERCLASS; private String infoHandlerClass = DEFAULT_INFOHANDLERCLASS; @@ -599,8 +598,8 @@ public static class NodeConfigBuilder { private PluginInfo tracerConfig; private PluginInfo[] clusterPlugins; private String defaultZkHost; - private Set allowPaths = Collections.emptySet(); - private List allowUrls = Collections.emptyList(); + private Set allowPaths = Set.of(); + private List allowUrls = List.of(); private boolean hideStackTrace = !EnvUtils.getPropertyAsBool("solr.responses.stacktrace.enabled", true); @@ -845,7 +844,7 @@ private Set resolveHiddenSysProps(String hiddenSysProps) { hiddenSysProps = fromProps; } } - Set hiddenSysPropSet = Collections.emptySet(); + Set hiddenSysPropSet = Set.of(); if (hiddenSysProps != null) { hiddenSysPropSet = StrUtils.splitSmart(hiddenSysProps, ',').stream() diff --git a/solr/core/src/java/org/apache/solr/core/PluginBag.java b/solr/core/src/java/org/apache/solr/core/PluginBag.java index 1af3445e7aaa..5583546e22f8 100644 --- a/solr/core/src/java/org/apache/solr/core/PluginBag.java +++ b/solr/core/src/java/org/apache/solr/core/PluginBag.java @@ -142,7 +142,7 @@ public static void initInstance(Object inst, PluginInfo info) { /** Check if any of the mentioned names are missing. If yes, return the Set of missing names */ public Set checkContains(Collection names) { - if (names == null || names.isEmpty()) return Collections.emptySet(); + if (names == null || names.isEmpty()) return Set.of(); HashSet result = new HashSet<>(); for (String s : names) if (!this.registry.containsKey(s)) result.add(s); return result; diff --git a/solr/core/src/java/org/apache/solr/core/PluginInfo.java b/solr/core/src/java/org/apache/solr/core/PluginInfo.java index 6ad137b0e09a..1cd80713b444 100644 --- a/solr/core/src/java/org/apache/solr/core/PluginInfo.java +++ b/solr/core/src/java/org/apache/solr/core/PluginInfo.java @@ -24,7 +24,6 @@ import com.google.common.annotations.VisibleForTesting; import java.util.ArrayList; -import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; @@ -59,7 +58,7 @@ public PluginInfo( } } attributes = unmodifiableMap(attrs); - this.children = children == null ? Collections.emptyList() : unmodifiableList(children); + this.children = children == null ? List.of() : unmodifiableList(children); isFromSolrConfig = false; } @@ -148,7 +147,7 @@ public PluginInfo(String type, Map map) { // TODO This is not type-safe and needs to be fixed - // https://issues.apache.org/jira/browse/SOLR-14696 attributes = unmodifiableMap(m); - this.children = Collections.emptyList(); + this.children = List.of(); isFromSolrConfig = true; } @@ -162,7 +161,7 @@ private List loadSubPlugins(ConfigNode node) { if (pluginInfo.isEnabled()) children.add(pluginInfo); return null; }); - return children.isEmpty() ? Collections.emptyList() : unmodifiableList(children); + return children.isEmpty() ? List.of() : unmodifiableList(children); } @Override @@ -230,7 +229,7 @@ public List getChildren(String type) { } public static final PluginInfo EMPTY_INFO = - new PluginInfo("", Collections.emptyMap(), new NamedList<>(), Collections.emptyList()); + new PluginInfo("", Map.of(), new NamedList<>(), List.of()); private static final HashSet NL_TAGS = new HashSet<>(asList("lst", "arr", "bool", "str", "int", "long", "float", "double")); diff --git a/solr/core/src/java/org/apache/solr/core/RequestHandlers.java b/solr/core/src/java/org/apache/solr/core/RequestHandlers.java index 39f043d95f90..415d305e49b3 100644 --- a/solr/core/src/java/org/apache/solr/core/RequestHandlers.java +++ b/solr/core/src/java/org/apache/solr/core/RequestHandlers.java @@ -18,7 +18,6 @@ import java.lang.invoke.MethodHandles; import java.util.ArrayList; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -116,7 +115,7 @@ void initHandlersFromConfig(SolrConfig config) { for (PluginInfo info : infos) { modifiedInfos.add(applyInitParams(config, info)); } - handlers.init(Collections.emptyMap(), core, modifiedInfos); + handlers.init(Map.of(), core, modifiedInfos); if (log.isDebugEnabled()) { log.debug("Registered paths: {}", StrUtils.join(new ArrayList<>(handlers.keySet()), ',')); diff --git a/solr/core/src/java/org/apache/solr/core/RequestParams.java b/solr/core/src/java/org/apache/solr/core/RequestParams.java index c5b37d197683..f0b491c84a09 100644 --- a/solr/core/src/java/org/apache/solr/core/RequestParams.java +++ b/solr/core/src/java/org/apache/solr/core/RequestParams.java @@ -47,7 +47,7 @@ public class RequestParams implements MapSerializable { private final int znodeVersion; public RequestParams(Map data, int znodeVersion) { - if (data == null) data = Collections.emptyMap(); + if (data == null) data = Map.of(); this.data = data; Map paramsets = (Map) data.get(NAME); if (paramsets != null) { @@ -151,7 +151,7 @@ public static RequestParams getFreshRequestParams( stat == null ? "" : stat.getVersion()); } if (stat == null) { - requestParams = new RequestParams(Collections.emptyMap(), -1); + requestParams = new RequestParams(Map.of(), -1); } else if (requestParams == null || stat.getVersion() > requestParams.getZnodeVersion()) { Object[] o = getMapAndVersion(loader, RequestParams.RESOURCE); @SuppressWarnings("unchecked") @@ -193,7 +193,7 @@ private static Object[] getMapAndVersion(SolrResourceLoader loader, String name) } catch (IOException e) { // no problem no overlay.json file - return new Object[] {Collections.emptyMap(), -1}; + return new Object[] {Map.of(), -1}; } } diff --git a/solr/core/src/java/org/apache/solr/core/SolrConfig.java b/solr/core/src/java/org/apache/solr/core/SolrConfig.java index 797276d862a3..1bbe7a9f8073 100644 --- a/solr/core/src/java/org/apache/solr/core/SolrConfig.java +++ b/solr/core/src/java/org/apache/solr/core/SolrConfig.java @@ -517,7 +517,7 @@ private SolrPluginInfo( this.clazz = clz; this.tag = tag; - this.options = opts == null ? Collections.emptySet() : EnumSet.of(NOOP, opts); + this.options = opts == null ? Set.of() : EnumSet.of(NOOP, opts); } public String getCleanTag() { @@ -539,7 +539,7 @@ public static ConfigOverlay getConfigOverlay(SolrResourceLoader loader) { // TODO: we should be explicitly looking for file not found exceptions // and logging if it's not the expected IOException // hopefully no problem, assume no overlay.json file - return new ConfigOverlay(Collections.emptyMap(), -1); + return new ConfigOverlay(Map.of(), -1); } int version = 0; @@ -564,7 +564,7 @@ public static ConfigOverlay getConfigOverlay(SolrResourceLoader loader) { } } - private Map initParams = Collections.emptyMap(); + private Map initParams = Map.of(); public Map getInitParams() { return initParams; @@ -901,7 +901,7 @@ public List getPluginInfos(String type) { result = new ArrayList<>(map.values()); } } - return result == null ? Collections.emptyList() : result; + return result == null ? List.of() : result; } public PluginInfo getPluginInfo(String type) { diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java index c936dda686f1..93699357426b 100644 --- a/solr/core/src/java/org/apache/solr/core/SolrCore.java +++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java @@ -1150,7 +1150,7 @@ protected SolrCore( valueSourceParsers.init(ValueSourceParser.standardValueSourceParsers, this); transformerFactories.init(TransformerFactory.defaultFactories, this); loadSearchComponents(); - updateProcessors.init(Collections.emptyMap(), this); + updateProcessors.init(Map.of(), this); // Processors initialized before the handlers updateProcessorChains = loadUpdateProcessorChains(); @@ -3231,7 +3231,7 @@ public void initDefaultPlugin(Object plugin, Class type) { * @return The instances initialized */ public List initPlugins(List pluginInfos, Class type, String defClassName) { - if (pluginInfos.isEmpty()) return Collections.emptyList(); + if (pluginInfos.isEmpty()) return List.of(); List result = new ArrayList<>(pluginInfos.size()); for (PluginInfo info : pluginInfos) result.add(createInitInstance(info, type, type.getSimpleName(), defClassName)); @@ -3623,7 +3623,7 @@ private ImplicitPluginsHolder() {} } public static List getImplicitPlugins(String type) { - return ALL_IMPLICIT_PLUGINS.getOrDefault(type, Collections.emptyList()); + return ALL_IMPLICIT_PLUGINS.getOrDefault(type, List.of()); } } diff --git a/solr/core/src/java/org/apache/solr/core/SolrPaths.java b/solr/core/src/java/org/apache/solr/core/SolrPaths.java index 1855b0fe205d..8918a321d065 100644 --- a/solr/core/src/java/org/apache/solr/core/SolrPaths.java +++ b/solr/core/src/java/org/apache/solr/core/SolrPaths.java @@ -143,7 +143,7 @@ public AllowPathBuilder addPath(Path path) { } public Set build() { - return paths == null ? Collections.emptySet() : paths; + return paths == null ? Set.of() : paths; } } } diff --git a/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java b/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java index f58286f172f9..14e87a527011 100644 --- a/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java +++ b/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java @@ -394,14 +394,14 @@ private static NodeConfig fillSolrSection(NodeConfig.NodeConfigBuilder builder, private static List separateStrings(String commaSeparatedString) { if (StrUtils.isNullOrEmpty(commaSeparatedString)) { - return Collections.emptyList(); + return List.of(); } return Arrays.asList(COMMA_SEPARATED_PATTERN.split(commaSeparatedString)); } private static Set separatePaths(String commaSeparatedString) { if (StrUtils.isNullOrEmpty(commaSeparatedString)) { - return Collections.emptySet(); + return Set.of(); } // Parse the list of paths. The special values '*' and '_ALL_' mean all paths. String[] pathStrings = COMMA_SEPARATED_PATTERN.split(commaSeparatedString); diff --git a/solr/core/src/java/org/apache/solr/core/backup/BackupManager.java b/solr/core/src/java/org/apache/solr/core/backup/BackupManager.java index 403dd589b0f9..2525bc36ad85 100644 --- a/solr/core/src/java/org/apache/solr/core/backup/BackupManager.java +++ b/solr/core/src/java/org/apache/solr/core/backup/BackupManager.java @@ -29,6 +29,7 @@ import java.util.List; import java.util.Objects; import java.util.Optional; +import java.util.Set; import org.apache.lucene.store.IOContext; import org.apache.lucene.store.IndexInput; import org.apache.solr.common.SolrException; @@ -224,8 +225,7 @@ public DocCollection readCollectionState(String collectionName) throws IOExcepti is.readBytes(arr, 0, (int) is.length()); // set a default created date, we don't aim at reading actual zookeeper state. The restored // collection will have a new creation date when persisted in zookeeper. - ClusterState c_state = - ClusterState.createFromJson(-1, arr, Collections.emptySet(), Instant.EPOCH, null); + ClusterState c_state = ClusterState.createFromJson(-1, arr, Set.of(), Instant.EPOCH, null); return c_state.getCollection(collectionName); } } diff --git a/solr/core/src/java/org/apache/solr/core/snapshots/CollectionSnapshotMetaData.java b/solr/core/src/java/org/apache/solr/core/snapshots/CollectionSnapshotMetaData.java index 483170db5985..b3b3476ac3d2 100644 --- a/solr/core/src/java/org/apache/solr/core/snapshots/CollectionSnapshotMetaData.java +++ b/solr/core/src/java/org/apache/solr/core/snapshots/CollectionSnapshotMetaData.java @@ -18,7 +18,6 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Date; import java.util.HashSet; import java.util.LinkedHashMap; @@ -125,8 +124,7 @@ public static enum SnapshotStatus { private final List replicaSnapshots; public CollectionSnapshotMetaData(String name) { - this( - name, SnapshotStatus.InProgress, new Date(), Collections.emptyList()); + this(name, SnapshotStatus.InProgress, new Date(), List.of()); } public CollectionSnapshotMetaData( diff --git a/solr/core/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java b/solr/core/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java index ed3bc83ccd2d..5820879c06b2 100644 --- a/solr/core/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java +++ b/solr/core/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java @@ -21,7 +21,6 @@ import java.io.StringReader; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.Comparator; import java.util.HashSet; import java.util.Iterator; @@ -63,7 +62,7 @@ */ public abstract class AnalysisRequestHandlerBase extends RequestHandlerBase { - public static final Set EMPTY_BYTES_SET = Collections.emptySet(); + public static final Set EMPTY_BYTES_SET = Set.of(); @Override public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception { diff --git a/solr/core/src/java/org/apache/solr/handler/ClusterAPI.java b/solr/core/src/java/org/apache/solr/handler/ClusterAPI.java index 4807e19aca24..dd7a3a6e3831 100644 --- a/solr/core/src/java/org/apache/solr/handler/ClusterAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/ClusterAPI.java @@ -95,7 +95,7 @@ Object readRecursive(String path, DistribStateManager zk, int depth) { if (children != null && !children.isEmpty()) { result = new HashMap<>(); } else { - return Collections.emptySet(); + return Set.of(); } for (String child : children) { Object c = readRecursive(path + "/" + child, zk, depth - 1); @@ -190,7 +190,7 @@ public static List getNodesByRole( try { return zk.listData(ZkStateReader.NODE_ROLES + "/" + role + "/" + mode); } catch (NoSuchElementException e) { - return Collections.emptyList(); + return List.of(); } } diff --git a/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java b/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java index d83c581a2c41..63656b5866b0 100644 --- a/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java +++ b/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java @@ -381,7 +381,7 @@ private void fetchFileList(long gen) throws IOException { List> files = (List>) response.get(CMD_GET_FILE_LIST); if (files != null) filesToDownload = Collections.synchronizedList(files); else { - filesToDownload = Collections.emptyList(); + filesToDownload = List.of(); log.error("No files to download for index generation: {}", gen); } @@ -1473,7 +1473,7 @@ private List makeTmpConfDirFileList(Path dir) { return Files.walk(dir).filter(Files::isRegularFile).collect(Collectors.toList()); } catch (IOException e) { log.warn("Could not walk file tree", e); - return Collections.emptyList(); + return List.of(); } } @@ -1532,8 +1532,7 @@ private String getDateAsStr(Date d) { */ private Collection> getModifiedConfFiles( List> confFilesToDownload) { - if (confFilesToDownload == null || confFilesToDownload.isEmpty()) - return Collections.emptyList(); + if (confFilesToDownload == null || confFilesToDownload.isEmpty()) return List.of(); // build a map with alias/name as the key Map> nameVsFile = new HashMap<>(); NamedList names = new NamedList<>(); @@ -1555,7 +1554,7 @@ private Collection> getModifiedConfFiles( nameVsFile.remove(name); // checksums are same so the file need not be downloaded } } - return nameVsFile.isEmpty() ? Collections.emptyList() : nameVsFile.values(); + return nameVsFile.isEmpty() ? List.of() : nameVsFile.values(); } static boolean delTree(Path dir) { @@ -1600,25 +1599,25 @@ List> getConfFilesToDownload() { // make a copy first because it can be null later List> tmp = confFilesToDownload; // create a new instance. or else iterator may fail - return tmp == null ? Collections.emptyList() : new ArrayList<>(tmp); + return tmp == null ? List.of() : new ArrayList<>(tmp); } List> getConfFilesDownloaded() { // make a copy first because it can be null later List> tmp = confFilesDownloaded; // NOTE: it's safe to make a copy of a SynchronizedCollection(ArrayList) - return tmp == null ? Collections.emptyList() : new ArrayList<>(tmp); + return tmp == null ? List.of() : new ArrayList<>(tmp); } List> getFilesToDownload() { // make a copy first because it can be null later List> tmp = filesToDownload; - return tmp == null ? Collections.emptyList() : new ArrayList<>(tmp); + return tmp == null ? List.of() : new ArrayList<>(tmp); } List> getFilesDownloaded() { List> tmp = filesDownloaded; - return tmp == null ? Collections.emptyList() : new ArrayList<>(tmp); + return tmp == null ? List.of() : new ArrayList<>(tmp); } // TODO: currently does not reflect conf files diff --git a/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java b/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java index 109317059069..684250e35d5a 100644 --- a/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java @@ -221,8 +221,7 @@ public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throw if (mltDocs.docSet == null) { rsp.add("facet_counts", null); } else { - final ResponseBuilder responseBuilder = - new ResponseBuilder(req, rsp, Collections.emptyList()); + final ResponseBuilder responseBuilder = new ResponseBuilder(req, rsp, List.of()); responseBuilder.setQuery(mlt.getRealMLTQuery()); SimpleFacets f = new SimpleFacets(req, mltDocs.docSet, params, responseBuilder); FacetComponent.FacetContext.initContext(responseBuilder); diff --git a/solr/core/src/java/org/apache/solr/handler/admin/BaseHandlerApiSupport.java b/solr/core/src/java/org/apache/solr/handler/admin/BaseHandlerApiSupport.java index 459f04864419..ed1fdbebfeb0 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/BaseHandlerApiSupport.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/BaseHandlerApiSupport.java @@ -108,8 +108,7 @@ public void call(SolrQueryRequest req, SolrQueryResponse rsp) { } } } - wrapParams( - req, new CommandOperation("", Collections.emptyMap()), commands.get(0), true); + wrapParams(req, new CommandOperation("", Map.of()), commands.get(0), true); commands.get(0).invoke(req, rsp, apiHandler); } diff --git a/solr/core/src/java/org/apache/solr/handler/admin/ClusterStatus.java b/solr/core/src/java/org/apache/solr/handler/admin/ClusterStatus.java index 3bda1f7ddc49..cbc45803d800 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/ClusterStatus.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/ClusterStatus.java @@ -18,7 +18,6 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -137,14 +136,14 @@ public void getClusterStatus(NamedList results, SolrVersion solrVersion) if (withClusterProperties) { Map clusterProps = zkStateReader.getClusterProperties(); if (clusterProps == null) { - clusterProps = Collections.emptyMap(); + clusterProps = Map.of(); } clusterStatus.add("properties", clusterProps); } // add the roles map if (withRoles) { - Map roles = Collections.emptyMap(); + Map roles = Map.of(); if (zkStateReader.getZkClient().exists(ZkStateReader.ROLES)) { roles = (Map) @@ -314,14 +313,13 @@ protected void crossCheckReplicaStateWithLiveNodes( public static Map postProcessCollectionJSON(Map collection) { final Map> shards = collection != null - ? (Map>) - collection.getOrDefault("shards", Collections.emptyMap()) - : Collections.emptyMap(); + ? (Map>) collection.getOrDefault("shards", Map.of()) + : Map.of(); final List healthStates = new ArrayList<>(shards.size()); shards.forEach( (shardName, s) -> { final Map> replicas = - (Map>) s.getOrDefault("replicas", Collections.emptyMap()); + (Map>) s.getOrDefault("replicas", Map.of()); int[] totalVsActive = new int[2]; boolean hasLeader = false; for (Map r : replicas.values()) { diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java index 946559e50161..0fa337f63622 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java @@ -106,7 +106,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; @@ -1410,7 +1409,6 @@ static Map copy( /** Copy all params to the given map or if the given map is null create a new one */ static Map copy( SolrParams source, Map sink, String... paramNames) { - return copy( - source, sink, paramNames == null ? Collections.emptyList() : Arrays.asList(paramNames)); + return copy(source, sink, paramNames == null ? List.of() : Arrays.asList(paramNames)); } } diff --git a/solr/core/src/java/org/apache/solr/handler/admin/SecurityConfHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/SecurityConfHandler.java index 0f3cc35d0624..315397f3e4e4 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/SecurityConfHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/SecurityConfHandler.java @@ -23,7 +23,6 @@ import java.lang.invoke.MethodHandles; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -214,7 +213,7 @@ public Category getCategory() { * object defaults to EMPTY_MAP if not set */ public static class SecurityConfig { - private Map data = Collections.emptyMap(); + private Map data = Map.of(); private int version = -1; public SecurityConfig() {} diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/AliasProperty.java b/solr/core/src/java/org/apache/solr/handler/admin/api/AliasProperty.java index 077c7ee42171..923df2196c7b 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/AliasProperty.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/AliasProperty.java @@ -21,7 +21,6 @@ import static org.apache.solr.security.PermissionNameProvider.Name.COLL_READ_PERM; import jakarta.inject.Inject; -import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.apache.solr.client.api.endpoint.AliasPropertyApis; @@ -144,11 +143,11 @@ public SolrJerseyResponse deleteAliasProperty(String aliasName, String propName) private static final String PROPERTIES = "property"; private void modifyAliasProperty( - SolrJerseyResponse response, String alias, String proertyName, Object value) + SolrJerseyResponse response, String alias, String propertyName, Object value) throws Exception { Map props = new HashMap<>(); // value can be null - props.put(proertyName, value); + props.put(propertyName, value); fetchAndValidateZooKeeperAwareCoreContainer(); submitRemoteMessageAndHandleException( @@ -168,7 +167,7 @@ private void modifyAliasProperties( // Note: success/no-op in the event of no properties supplied is intentional. Keeps code // simple and one less case for api-callers to check for. if (properties == null) { - properties = Collections.emptyMap(); + properties = Map.of(); } fetchAndValidateZooKeeperAwareCoreContainer(); submitRemoteMessageAndHandleAsync( diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/ReplicationAPIBase.java b/solr/core/src/java/org/apache/solr/handler/admin/api/ReplicationAPIBase.java index 10f0e1bd785b..88bf15ca471a 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/api/ReplicationAPIBase.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/api/ReplicationAPIBase.java @@ -28,7 +28,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.regex.Pattern; @@ -140,7 +139,7 @@ protected FileListResponse getFileList(long generation, ReplicationHandler repli if (generation == -1) { commit = delPol.getAndSaveLatestCommit(); if (null == commit) { - filesResponse.fileList = Collections.emptyList(); + filesResponse.fileList = List.of(); return filesResponse; } } else { diff --git a/solr/core/src/java/org/apache/solr/handler/component/CloudReplicaSource.java b/solr/core/src/java/org/apache/solr/handler/component/CloudReplicaSource.java index 5e333c8e6d33..836d0951f062 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/CloudReplicaSource.java +++ b/solr/core/src/java/org/apache/solr/handler/component/CloudReplicaSource.java @@ -160,7 +160,7 @@ private List findReplicas( if (slice == null) { // Treat this the same as "all servers down" for a slice, and let things continue // if partial results are acceptable - return Collections.emptyList(); + return List.of(); } else { final Predicate isShardLeader = new IsLeaderPredicate( diff --git a/solr/core/src/java/org/apache/solr/handler/component/CombinedQueryComponent.java b/solr/core/src/java/org/apache/solr/handler/component/CombinedQueryComponent.java index ef51c30e575c..9831281d2b26 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/CombinedQueryComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/CombinedQueryComponent.java @@ -22,7 +22,6 @@ import java.io.PrintWriter; import java.io.StringWriter; import java.util.ArrayList; -import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; @@ -277,7 +276,7 @@ protected void mergeIds(ResponseBuilder rb, ShardRequest sreq) { .filter(field -> !field.equals(SolrReturnFields.SCORE)) .collect(Collectors.toSet()); } else { - scoreDependentFields = Collections.emptySet(); + scoreDependentFields = Set.of(); } IndexSchema schema = rb.req.getSchema(); diff --git a/solr/core/src/java/org/apache/solr/handler/component/DebugComponent.java b/solr/core/src/java/org/apache/solr/handler/component/DebugComponent.java index 3fb01bd7da61..70dd1a401f22 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/DebugComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/DebugComponent.java @@ -357,9 +357,9 @@ protected Object merge(Object source, Object dest, Set exclude) { } if (didx == -1) { - tmp.add(skey, merge(sval, null, Collections.emptySet())); + tmp.add(skey, merge(sval, null, Set.of())); } else { - dl.setVal(didx, merge(sval, dl.getVal(didx), Collections.emptySet())); + dl.setVal(didx, merge(sval, dl.getVal(didx), Set.of())); } } dl.addAll(tmp); diff --git a/solr/core/src/java/org/apache/solr/handler/component/FacetComponent.java b/solr/core/src/java/org/apache/solr/handler/component/FacetComponent.java index 5db8fc02a9cc..5ac1d177e6b6 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/FacetComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/FacetComponent.java @@ -21,7 +21,6 @@ import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -174,8 +173,8 @@ public static void initContext(ResponseBuilder rb) { private FacetContext(List allRangeFacets, List allQueryFacets) { // avoid NPEs, set to empty list if parameters are null - this.allRangeFacets = allRangeFacets == null ? Collections.emptyList() : allRangeFacets; - this.allQueryFacets = allQueryFacets == null ? Collections.emptyList() : allQueryFacets; + this.allRangeFacets = allRangeFacets == null ? List.of() : allRangeFacets; + this.allQueryFacets = allQueryFacets == null ? List.of() : allQueryFacets; taggedRangeFacets = new HashMap<>(); for (RangeFacetRequest rf : this.allRangeFacets) { @@ -244,7 +243,7 @@ public List getAllQueryFacets() { */ public List getRangeFacetRequestsForTag(String tag) { List list = taggedRangeFacets.get(tag); - return list == null ? Collections.emptyList() : list; + return list == null ? List.of() : list; } /** @@ -254,7 +253,7 @@ public List getRangeFacetRequestsForTag(String tag) { */ public List getQueryFacetsForTag(String tag) { List list = taggedQueryFacets.get(tag); - return list == null ? Collections.emptyList() : list; + return list == null ? List.of() : list; } } @@ -1189,7 +1188,7 @@ private SimpleOrderedMap>> createPivotFacetOutput(Respons PivotFacet pivot = entry.getValue(); List> trimmedPivots = pivot.getTrimmedPivotsAsListOfNamedLists(); if (null == trimmedPivots) { - trimmedPivots = Collections.>emptyList(); + trimmedPivots = List.of(); } combinedPivotFacets.add(key, trimmedPivots); @@ -1310,8 +1309,8 @@ public static class FacetBase { private String key; // label in the response for the result... // "foo" for {!key=foo}myfield SolrParams localParams; // any local params for the facet - private List tags = Collections.emptyList(); - private List excludeTags = Collections.emptyList(); + private List tags = List.of(); + private List excludeTags = List.of(); private int threadCount = -1; public FacetBase(ResponseBuilder rb, String facetType, String facetStr) { @@ -1335,15 +1334,14 @@ public FacetBase(ResponseBuilder rb, String facetType, String facetStr) { key = localParams.get(CommonParams.OUTPUT_KEY, key); String tagStr = localParams.get(CommonParams.TAG); - this.tags = - tagStr == null ? Collections.emptyList() : StrUtils.splitSmart(tagStr, ','); + this.tags = tagStr == null ? List.of() : StrUtils.splitSmart(tagStr, ','); String threadStr = localParams.get(CommonParams.THREADS); this.threadCount = threadStr != null ? Integer.parseInt(threadStr) : -1; String excludeStr = localParams.get(CommonParams.EXCLUDE); if (StrUtils.isNullOrEmpty(excludeStr)) { - this.excludeTags = Collections.emptyList(); + this.excludeTags = List.of(); } else { this.excludeTags = StrUtils.splitSmart(excludeStr, ','); } diff --git a/solr/core/src/java/org/apache/solr/handler/component/FieldFacetStats.java b/solr/core/src/java/org/apache/solr/handler/component/FieldFacetStats.java index 2b0926ba2ee1..d1310b766046 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/FieldFacetStats.java +++ b/solr/core/src/java/org/apache/solr/handler/component/FieldFacetStats.java @@ -18,7 +18,6 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -153,7 +152,7 @@ public boolean accumulateTermNum(int statsTermNum, BytesRef value) throws IOExce public void setNextReader(LeafReaderContext ctx) throws IOException { this.context = ctx; - values = valueSource.getValues(Collections.emptyMap(), ctx); + values = valueSource.getValues(Map.of(), ctx); for (StatsValues stats : facetStatsValues.values()) { stats.setNextReader(ctx); } diff --git a/solr/core/src/java/org/apache/solr/handler/component/PhrasesIdentificationComponent.java b/solr/core/src/java/org/apache/solr/handler/component/PhrasesIdentificationComponent.java index a1dc6ddd911e..ec22d1835f71 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/PhrasesIdentificationComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/PhrasesIdentificationComponent.java @@ -278,7 +278,7 @@ private void scoreAndAddResultsToResponse( if (0 == contextData.allPhrases.size()) { // w/o any phrases, the summary is just the input again... output.add("summary", contextData.rawInput); - output.add("details", Collections.emptyList()); + output.add("details", List.of()); return; } diff --git a/solr/core/src/java/org/apache/solr/handler/component/PivotFacet.java b/solr/core/src/java/org/apache/solr/handler/component/PivotFacet.java index 270c839eb5aa..ebb164f720e7 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/PivotFacet.java +++ b/solr/core/src/java/org/apache/solr/handler/component/PivotFacet.java @@ -37,8 +37,8 @@ public class PivotFacet extends FacetBase { /** * Local param used to indicate that refinements are required on a pivot. Should also be used as - * the prefix for concatenating with the value to determine the name of the multi-valued param - * that will contain all of the values needed for refinement. + * the prefix for concatenating with the value to determine the name of the multivalued param that + * will contain all the values needed for refinement. */ public static final String REFINE_PARAM = "fpt"; @@ -84,7 +84,7 @@ public void addRefinement(int shardNumber, PivotFacetValue value) { public List getQueuedRefinements(int shardNumber) { List raw = queuedRefinements.get(shardNumber); if (null == raw) { - raw = Collections.emptyList(); + raw = List.of(); } return Collections.unmodifiableList(raw); } @@ -119,7 +119,7 @@ public boolean isRefinementsRequired() { public List> getTrimmedPivotsAsListOfNamedLists() { if (null == pivotFacetField) { // no values in any shard for the top field of this pivot - return Collections.>emptyList(); + return List.of(); } pivotFacetField.trim(); diff --git a/solr/core/src/java/org/apache/solr/handler/component/PivotFacetFieldValueCollection.java b/solr/core/src/java/org/apache/solr/handler/component/PivotFacetFieldValueCollection.java index f39c70ae0b54..fc331ca4e5ef 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/PivotFacetFieldValueCollection.java +++ b/solr/core/src/java/org/apache/solr/handler/component/PivotFacetFieldValueCollection.java @@ -113,7 +113,7 @@ public int size() { public List getNextLevelValuesToRefine() { final int numRefinableValues = getExplicitValuesListSize(); if (numRefinableValues < facetFieldOffset) { - return Collections.emptyList(); + return List.of(); } final int offsetPlusCount = diff --git a/solr/core/src/java/org/apache/solr/handler/component/PivotFacetProcessor.java b/solr/core/src/java/org/apache/solr/handler/component/PivotFacetProcessor.java index 2a3ef5c69d50..cd6baab79f50 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/PivotFacetProcessor.java +++ b/solr/core/src/java/org/apache/solr/handler/component/PivotFacetProcessor.java @@ -18,7 +18,6 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Collections; import java.util.Deque; import java.util.LinkedHashMap; import java.util.LinkedList; @@ -99,9 +98,9 @@ public SimpleOrderedMap>> process(String[] pivots) throws // start by assuming no local params... String refineKey = null; // no local => no refinement - List statsFields = Collections.emptyList(); // no local => no stats - List facetQueries = Collections.emptyList(); - List facetRanges = Collections.emptyList(); + List statsFields = List.of(); // no local => no stats + List facetQueries = List.of(); + List facetRanges = List.of(); if (null != parsed.localParams) { // we might be refining.. refineKey = parsed.localParams.get(PivotFacet.REFINE_PARAM); @@ -122,7 +121,7 @@ public SimpleOrderedMap>> process(String[] pivots) throws String taggedQueries = parsed.localParams.get(QUERY); if (StrUtils.isNullOrEmpty(taggedQueries)) { - facetQueries = Collections.emptyList(); + facetQueries = List.of(); } else { List localParamValue = StrUtils.splitSmart(taggedQueries, ','); if (localParamValue.size() > 1) { @@ -141,7 +140,7 @@ public SimpleOrderedMap>> process(String[] pivots) throws String taggedRanges = parsed.localParams.get(RANGE); if (StrUtils.isNullOrEmpty(taggedRanges)) { - facetRanges = Collections.emptyList(); + facetRanges = List.of(); } else { List localParamValue = StrUtils.splitSmart(taggedRanges, ','); if (localParamValue.size() > 1) { @@ -273,7 +272,7 @@ private SimpleOrderedMap>> processSingle( private static List getTaggedStatsFields( StatsInfo statsInfo, String statsLocalParam) { if (null == statsLocalParam || null == statsInfo) { - return Collections.emptyList(); + return List.of(); } List fields = new ArrayList<>(7); diff --git a/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java b/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java index 72d81d78e468..9bc219e6d538 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java @@ -26,7 +26,6 @@ import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; @@ -1004,7 +1003,7 @@ protected void mergeIds(ResponseBuilder rb, ShardRequest sreq) { .filter(field -> !field.equals(SolrReturnFields.SCORE)) .collect(Collectors.toSet()); } else { - scoreDependentFields = Collections.emptySet(); + scoreDependentFields = Set.of(); } IndexSchema schema = rb.req.getSchema(); diff --git a/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java b/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java index 16e7906aea7b..c23b3891639a 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java @@ -518,13 +518,9 @@ protected Elevation getElevation(ResponseBuilder rb) { String paramExcludedIds = params.get(QueryElevationParams.EXCLUDE); if (paramElevatedIds != null || paramExcludedIds != null) { List elevatedIds = - paramElevatedIds != null - ? StrUtils.splitSmart(paramElevatedIds, ",", true) - : Collections.emptyList(); + paramElevatedIds != null ? StrUtils.splitSmart(paramElevatedIds, ",", true) : List.of(); List excludedIds = - paramExcludedIds != null - ? StrUtils.splitSmart(paramExcludedIds, ",", true) - : Collections.emptyList(); + paramExcludedIds != null ? StrUtils.splitSmart(paramExcludedIds, ",", true) : List.of(); return new ElevationBuilder().addElevatedIds(elevatedIds).addExcludedIds(excludedIds).build(); } else { IndexReader reader = rb.req.getSearcher().getIndexReader(); @@ -916,10 +912,8 @@ void setTopQueryResults( clearElevationProviderCache(); ElevatingQuery elevatingQuery = new ElevatingQuery(queryString, subsetMatch); ElevationBuilder elevationBuilder = new ElevationBuilder(); - elevationBuilder.addElevatedIds( - elevatedIds == null ? Collections.emptyList() : Arrays.asList(elevatedIds)); - elevationBuilder.addExcludedIds( - excludedIds == null ? Collections.emptyList() : Arrays.asList(excludedIds)); + elevationBuilder.addElevatedIds(elevatedIds == null ? List.of() : Arrays.asList(elevatedIds)); + elevationBuilder.addExcludedIds(excludedIds == null ? List.of() : Arrays.asList(excludedIds)); Map elevationBuilderMap = Map.of(elevatingQuery, elevationBuilder); synchronized (LOCK) { @@ -1221,7 +1215,7 @@ protected static class Elevation { public Elevation(Set elevatedIds, Set excludedIds, String queryFieldName) { if (elevatedIds == null || elevatedIds.isEmpty()) { includeQuery = EMPTY_QUERY; - this.elevatedIds = Collections.emptySet(); + this.elevatedIds = Set.of(); } else { this.elevatedIds = Collections.unmodifiableSet(new LinkedHashSet<>(elevatedIds)); BooleanQuery.Builder includeQueryBuilder = new BooleanQuery.Builder(); @@ -1233,7 +1227,7 @@ public Elevation(Set elevatedIds, Set excludedIds, String qu } if (excludedIds == null || excludedIds.isEmpty()) { - this.excludedIds = Collections.emptySet(); + this.excludedIds = Set.of(); excludeQueries = null; } else { this.excludedIds = Collections.unmodifiableSet(new LinkedHashSet<>(excludedIds)); @@ -1647,7 +1641,7 @@ void addMatchValue(M matchValue) { /** Gets the match values decorating this node. */ List getMatchValues() { - return (matchValues == null ? Collections.emptyList() : matchValues); + return (matchValues == null ? List.of() : matchValues); } /** diff --git a/solr/core/src/java/org/apache/solr/handler/component/RangeFacetProcessor.java b/solr/core/src/java/org/apache/solr/handler/component/RangeFacetProcessor.java index a4ddabe5aa47..02beb525e5dd 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/RangeFacetProcessor.java +++ b/solr/core/src/java/org/apache/solr/handler/component/RangeFacetProcessor.java @@ -18,7 +18,6 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Set; import org.apache.lucene.search.Query; @@ -55,7 +54,7 @@ public RangeFacetProcessor( public NamedList getFacetRangeCounts() throws IOException, SyntaxError { final NamedList resOuter = new SimpleOrderedMap<>(); - List rangeFacetRequests = Collections.emptyList(); + List rangeFacetRequests = List.of(); try { FacetComponent.FacetContext facetContext = FacetComponent.FacetContext.getFacetContext(req); rangeFacetRequests = facetContext.getAllRangeFacetRequests(); diff --git a/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java b/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java index 1f78b41d5fdd..d1dc15d9a496 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java @@ -1374,7 +1374,7 @@ public void processGetUpdates(ResponseBuilder rb) throws IOException { private List resolveVersionRanges(String versionsStr, UpdateLog ulog) { if (StrUtils.isNullOrEmpty(versionsStr)) { - return Collections.emptyList(); + return List.of(); } List ranges = StrUtils.splitSmart(versionsStr, ",", true); @@ -1457,7 +1457,7 @@ public static IdsRequested parseParams(SolrQueryRequest req) { final String ids[] = params.getParams("ids"); if (id == null && ids == null) { - IdsRequested result = new IdsRequested(Collections.emptyList(), true); + IdsRequested result = new IdsRequested(List.of(), true); req.getContext().put(contextKey, result); return result; } diff --git a/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java b/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java index d3bb6216b8ae..3ec24f76c93f 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java @@ -34,7 +34,6 @@ import java.io.StringWriter; import java.lang.invoke.MethodHandles; import java.util.ArrayList; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -203,7 +202,7 @@ public String packageName() { @Override public Map packageDetails() { - return Collections.emptyMap(); + return Map.of(); } @Override diff --git a/solr/core/src/java/org/apache/solr/handler/component/ShardDoc.java b/solr/core/src/java/org/apache/solr/handler/component/ShardDoc.java index badf4e337bfa..addea96afd6a 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/ShardDoc.java +++ b/solr/core/src/java/org/apache/solr/handler/component/ShardDoc.java @@ -16,7 +16,6 @@ */ package org.apache.solr.handler.component; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; @@ -50,7 +49,7 @@ public class ShardDoc extends FieldDoc { public int positionInResponse; - public Map scoreDependentFields = Collections.emptyMap(); + public Map scoreDependentFields = Map.of(); // the ordinal position in the merged response arraylist diff --git a/solr/core/src/java/org/apache/solr/handler/component/ShardHandlerFactory.java b/solr/core/src/java/org/apache/solr/handler/component/ShardHandlerFactory.java index c135e17d1d8a..9a4fdff3d117 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/ShardHandlerFactory.java +++ b/solr/core/src/java/org/apache/solr/handler/component/ShardHandlerFactory.java @@ -16,7 +16,7 @@ */ package org.apache.solr.handler.component; -import java.util.Collections; +import java.util.List; import java.util.Locale; import java.util.Map; import org.apache.solr.common.SolrException; @@ -32,7 +32,6 @@ public abstract class ShardHandlerFactory { public abstract void close(); public void setSecurityBuilder(HttpClientBuilderPlugin clientBuilderPlugin) {} - ; /** * Create a new ShardHandlerFactory instance @@ -71,5 +70,5 @@ public static ShardHandlerFactory newInstance(PluginInfo info, SolrResourceLoade "shardHandlerFactory", Map.of("class", HttpShardHandlerFactory.class.getName()), null, - Collections.emptyList()); + List.of()); } diff --git a/solr/core/src/java/org/apache/solr/handler/component/StandaloneReplicaSource.java b/solr/core/src/java/org/apache/solr/handler/component/StandaloneReplicaSource.java index 73fd49e1a55b..072c7dd2934a 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/StandaloneReplicaSource.java +++ b/solr/core/src/java/org/apache/solr/handler/component/StandaloneReplicaSource.java @@ -18,7 +18,6 @@ package org.apache.solr.handler.component; import java.lang.reflect.Array; -import java.util.Collections; import java.util.List; import org.apache.solr.common.util.StrUtils; import org.apache.solr.security.AllowListUrlChecker; @@ -43,7 +42,7 @@ public StandaloneReplicaSource(Builder builder) { @Override public List getSliceNames() { // there are no logical slice names in non-cloud - return Collections.emptyList(); + return List.of(); } @Override diff --git a/solr/core/src/java/org/apache/solr/handler/component/StatsField.java b/solr/core/src/java/org/apache/solr/handler/component/StatsField.java index 1a6797607849..2d01cb4baee4 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/StatsField.java +++ b/solr/core/src/java/org/apache/solr/handler/component/StatsField.java @@ -322,15 +322,11 @@ public StatsField(ResponseBuilder rb, String statsParam) { String[] facets = params.getFieldParams(key, StatsParams.STATS_FACET); this.facets = (null == facets) ? new String[0] : facets; String tagStr = localParams.get(CommonParams.TAG); - this.tagList = - (null == tagStr) ? Collections.emptyList() : StrUtils.splitSmart(tagStr, ','); + this.tagList = (null == tagStr) ? List.of() : StrUtils.splitSmart(tagStr, ','); // figure out if we need a special base DocSet String excludeStr = localParams.get(CommonParams.EXCLUDE); - this.excludeTagList = - (null == excludeStr) - ? Collections.emptyList() - : StrUtils.splitSmart(excludeStr, ','); + this.excludeTagList = (null == excludeStr) ? List.of() : StrUtils.splitSmart(excludeStr, ','); assert ((null == this.valueSource) ^ (null == this.schemaField)) : "exactly one of valueSource & schemaField must be null"; diff --git a/solr/core/src/java/org/apache/solr/handler/component/StatsInfo.java b/solr/core/src/java/org/apache/solr/handler/component/StatsInfo.java index 3157634716c4..ebac8a921462 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/StatsInfo.java +++ b/solr/core/src/java/org/apache/solr/handler/component/StatsInfo.java @@ -88,7 +88,7 @@ public StatsField getStatsField(String outputKey) { public List getStatsFieldsByTag(String tag) { List raw = tagToStatsFields.get(tag); if (null == raw) { - return Collections.emptyList(); + return List.of(); } else { return Collections.unmodifiableList(raw); } diff --git a/solr/core/src/java/org/apache/solr/handler/component/TermVectorComponent.java b/solr/core/src/java/org/apache/solr/handler/component/TermVectorComponent.java index bd9183fceb00..a4702e1d6137 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/TermVectorComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/TermVectorComponent.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Base64; -import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashSet; @@ -113,7 +112,7 @@ private Set getFields(ResponseBuilder rb) { ? fieldNames : // return empty set indicating no fields should be used - Collections.emptySet(); + Set.of(); } // otherwise us the raw fldList as is, no special parsing or globs diff --git a/solr/core/src/java/org/apache/solr/handler/configsets/UploadConfigSet.java b/solr/core/src/java/org/apache/solr/handler/configsets/UploadConfigSet.java index 555adb1acaa8..d87c38154f5a 100644 --- a/solr/core/src/java/org/apache/solr/handler/configsets/UploadConfigSet.java +++ b/solr/core/src/java/org/apache/solr/handler/configsets/UploadConfigSet.java @@ -23,7 +23,7 @@ import java.io.InputStream; import java.lang.invoke.MethodHandles; import java.nio.charset.StandardCharsets; -import java.util.Collections; +import java.util.ArrayList; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; @@ -75,7 +75,7 @@ public SolrJerseyResponse uploadConfigSet( if (overwritesExisting && cleanup) { filesToDelete = configSetService.getAllConfigFiles(configSetName); } else { - filesToDelete = Collections.emptyList(); + filesToDelete = new ArrayList<>(); } try (ZipInputStream zis = new ZipInputStream(requestBody, StandardCharsets.UTF_8)) { diff --git a/solr/core/src/java/org/apache/solr/handler/designer/ManagedSchemaDiff.java b/solr/core/src/java/org/apache/solr/handler/designer/ManagedSchemaDiff.java index 17e26923c2ea..3d064ce7286f 100644 --- a/solr/core/src/java/org/apache/solr/handler/designer/ManagedSchemaDiff.java +++ b/solr/core/src/java/org/apache/solr/handler/designer/ManagedSchemaDiff.java @@ -21,7 +21,6 @@ import com.google.common.collect.Maps; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -224,7 +223,7 @@ private static List> getMapDifference( Map> mapDiff = Maps.difference(map1, map2).entriesDiffering(); if (mapDiff.isEmpty()) { - return Collections.emptyList(); + return List.of(); } Map leftMapDiff = mapDiff.entrySet().stream() diff --git a/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerAPI.java b/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerAPI.java index 426ec449cb45..91f8e7e57d29 100644 --- a/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerAPI.java +++ b/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerAPI.java @@ -168,8 +168,7 @@ public void getInfo(SolrQueryRequest req, SolrQueryResponse rsp) throws IOExcept responseMap.put(SCHEMA_VERSION_PARAM, configSetHelper.getCurrentSchemaVersion(mutableId)); responseMap.put( - "collections", - exists ? configSetHelper.listCollectionsForConfig(configSet) : Collections.emptyList()); + "collections", exists ? configSetHelper.listCollectionsForConfig(configSet) : List.of()); // don't fail if loading sample docs fails try { @@ -657,7 +656,7 @@ public void analyze(SolrQueryRequest req, SolrQueryResponse rsp) if (languages != null) { langs = languages.length == 0 || (languages.length == 1 && "*".equals(languages[0])) - ? Collections.emptyList() + ? List.of() : Arrays.asList(languages); if (!langs.equals(settings.getLanguages())) { settings.setLanguages(langs); @@ -866,7 +865,7 @@ protected ManagedIndexSchema analyzeInputDocs( // collect the fields to add ... adding all fields at once is faster than one-at-a-time List fieldsToAdd = new ArrayList<>(); for (String field : docs.keySet()) { - List sampleValues = docs.getOrDefault(field, Collections.emptyList()); + List sampleValues = docs.getOrDefault(field, List.of()); // Collapse all whitespace in fields to a single underscore String normalizedField = field.trim().replaceAll("\\s+", "_"); diff --git a/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerConfigSetHelper.java b/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerConfigSetHelper.java index 90a7763a16e7..23729eb21a14 100644 --- a/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerConfigSetHelper.java +++ b/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerConfigSetHelper.java @@ -584,9 +584,7 @@ ManagedIndexSchema enableNestedDocsFields(ManagedIndexSchema schema, boolean per schema = (ManagedIndexSchema) schema.addField( - schema.newField( - NEST_PATH_FIELD_NAME, NEST_PATH_FIELD_NAME, Collections.emptyMap()), - false); + schema.newField(NEST_PATH_FIELD_NAME, NEST_PATH_FIELD_NAME, Map.of()), false); madeChanges = true; } diff --git a/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerSettings.java b/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerSettings.java index 0216d433ee56..5c4bf01d4298 100644 --- a/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerSettings.java +++ b/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerSettings.java @@ -17,7 +17,6 @@ package org.apache.solr.handler.designer; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -41,8 +40,7 @@ class SchemaDesignerSettings implements SchemaDesignerConstants { this.isDisabled = getSettingAsBool(stored, DESIGNER_KEY + DISABLED, false); this.publishedVersion = null; this.copyFrom = (String) stored.get(DESIGNER_KEY + COPY_FROM_PARAM); - this.languages = - (List) stored.getOrDefault(DESIGNER_KEY + LANGUAGES_PARAM, Collections.emptyList()); + this.languages = (List) stored.getOrDefault(DESIGNER_KEY + LANGUAGES_PARAM, List.of()); this.dynamicFieldsEnabled = getSettingAsBool(stored, DESIGNER_KEY + ENABLE_DYNAMIC_FIELDS_PARAM, true); this.nestedDocsEnabled = @@ -114,7 +112,7 @@ public List getLanguages() { } public void setLanguages(List langs) { - this.languages = langs != null ? langs : Collections.emptyList(); + this.languages = langs != null ? langs : List.of(); } public boolean dynamicFieldsEnabled() { diff --git a/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerSettingsDAO.java b/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerSettingsDAO.java index a824e70381db..9a09e8e5da94 100644 --- a/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerSettingsDAO.java +++ b/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerSettingsDAO.java @@ -22,7 +22,6 @@ import java.io.IOException; import java.lang.invoke.MethodHandles; import java.nio.charset.StandardCharsets; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -72,7 +71,7 @@ SchemaDesignerSettings getSettings(SolrConfig solrConfig) { } map.putIfAbsent(AUTO_CREATE_FIELDS, isFieldGuessingEnabled); - map.putIfAbsent(DESIGNER_KEY + LANGUAGES_PARAM, Collections.emptyList()); + map.putIfAbsent(DESIGNER_KEY + LANGUAGES_PARAM, List.of()); map.putIfAbsent(DESIGNER_KEY + ENABLE_DYNAMIC_FIELDS_PARAM, true); map.putIfAbsent(DESIGNER_KEY + ENABLE_NESTED_DOCS_PARAM, false); @@ -83,8 +82,7 @@ boolean persistIfChanged(String configSet, SchemaDesignerSettings settings) thro boolean changed = false; ConfigOverlay overlay = getConfigOverlay(configSet); - Map storedUserProps = - overlay != null ? overlay.getUserProps() : Collections.emptyMap(); + Map storedUserProps = overlay != null ? overlay.getUserProps() : Map.of(); for (Map.Entry e : settings.toMap().entrySet()) { String key = e.getKey(); Object propValue = e.getValue(); @@ -118,8 +116,7 @@ boolean isDesignerDisabled(String configSet) { } catch (IOException exc) { log.error("Failed to get config overlay for {}", configSet, exc); } - Map userProps = - overlay != null ? overlay.getUserProps() : Collections.emptyMap(); + Map userProps = overlay != null ? overlay.getUserProps() : Map.of(); return SchemaDesignerSettings.getSettingAsBool(userProps, DESIGNER_KEY + DISABLED, false); } diff --git a/solr/core/src/java/org/apache/solr/handler/loader/JavabinLoader.java b/solr/core/src/java/org/apache/solr/handler/loader/JavabinLoader.java index 1269021aa2f7..0c8b47003aec 100644 --- a/solr/core/src/java/org/apache/solr/handler/loader/JavabinLoader.java +++ b/solr/core/src/java/org/apache/solr/handler/loader/JavabinLoader.java @@ -19,7 +19,6 @@ import java.io.EOFException; import java.io.IOException; import java.io.InputStream; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -179,7 +178,7 @@ public List readIterator(DataInputInputStream fis) throws IOException { } } } - return Collections.emptyList(); + return List.of(); } }) { jbc.unmarshal(in); diff --git a/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java b/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java index d77d4b35f36b..10cd569d99c0 100644 --- a/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java +++ b/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java @@ -816,7 +816,7 @@ protected List getFieldValues( // Collect the Fields we will examine (could be more than one if multi-valued) Collection fieldValues = doc.getFieldValues(fieldName); if (fieldValues == null) { - return Collections.emptyList(); + return List.of(); } FieldType fieldType = req.getSchema().getFieldType(fieldName); List result = new ArrayList<>(); diff --git a/solr/core/src/java/org/apache/solr/highlight/UnifiedSolrHighlighter.java b/solr/core/src/java/org/apache/solr/highlight/UnifiedSolrHighlighter.java index 5f43904f517d..3ae334db8b5b 100644 --- a/solr/core/src/java/org/apache/solr/highlight/UnifiedSolrHighlighter.java +++ b/solr/core/src/java/org/apache/solr/highlight/UnifiedSolrHighlighter.java @@ -19,7 +19,6 @@ import java.io.IOException; import java.text.BreakIterator; import java.util.Collection; -import java.util.Collections; import java.util.EnumSet; import java.util.List; import java.util.Locale; @@ -162,7 +161,7 @@ public NamedList doHighlighting( UnifiedHighlighter highlighter = getHighlighter(req); Map snippets = fieldNames.length == 0 - ? Collections.emptyMap() + ? Map.of() : highlighter.highlightFields(fieldNames, query, docIDs, maxPassages); return encodeSnippets(keys, fieldNames, snippets); } diff --git a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java index f6f6c65c34aa..4408eca7d45f 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java @@ -55,7 +55,6 @@ import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader; import java.lang.invoke.MethodHandles; import java.util.Arrays; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -520,8 +519,7 @@ public void closeAllRegistries() { * to the name. */ public static String mkName(String name, String... path) { - return makeName( - path == null || path.length == 0 ? Collections.emptyList() : Arrays.asList(path), name); + return makeName(path == null || path.length == 0 ? List.of() : Arrays.asList(path), name); } public static String makeName(List path, String name) { diff --git a/solr/core/src/java/org/apache/solr/packagemanager/PackageManager.java b/solr/core/src/java/org/apache/solr/packagemanager/PackageManager.java index 943c9248a62b..0d16ec02b0dd 100644 --- a/solr/core/src/java/org/apache/solr/packagemanager/PackageManager.java +++ b/solr/core/src/java/org/apache/solr/packagemanager/PackageManager.java @@ -250,15 +250,14 @@ public Map getPackagesDeployed(String collection) { false) /* Making a collection request, but already baked into path */); packages = (Map) - Objects.requireNonNullElse( - result._get("/response/params/PKG_VERSIONS"), Collections.emptyMap()); + Objects.requireNonNullElse(result._get("/response/params/PKG_VERSIONS"), Map.of()); } catch (PathNotFoundException ex) { // Don't worry if PKG_VERSION wasn't found. It just means this collection was never touched by // the package manager. } catch (SolrServerException | IOException ex) { throw new SolrException(ErrorCode.SERVER_ERROR, ex); } - if (packages == null) return Collections.emptyMap(); + if (packages == null) return Map.of(); Map ret = new HashMap<>(); for (String packageName : packages.keySet()) { if (!StrUtils.isNullOrEmpty(packageName) @@ -289,7 +288,7 @@ public Map getPackagesDeployedAsClusterLevelPlugins Integer statusCode = (Integer) response._get(List.of("responseHeader", "status"), null); if (statusCode == null || statusCode == ErrorCode.NOT_FOUND.code) { // Cluster props doesn't exist, that means there are no cluster level plugins installed. - result = Collections.emptyMap(); + result = Map.of(); } else { result = response.asShallowMap(); } @@ -298,8 +297,7 @@ public Map getPackagesDeployedAsClusterLevelPlugins } @SuppressWarnings({"unchecked"}) Map clusterPlugins = - (Map) - result.getOrDefault(ContainerPluginsApi.PLUGIN, Collections.emptyMap()); + (Map) result.getOrDefault(ContainerPluginsApi.PLUGIN, Map.of()); for (Map.Entry entry : clusterPlugins.entrySet()) { PluginMeta pluginMeta; try { @@ -615,7 +613,7 @@ private boolean deployClusterPackage( } if (clusterprops != null) { Object pkg = - ((Map) clusterprops.getOrDefault("plugin", Collections.emptyMap())) + ((Map) clusterprops.getOrDefault("plugin", Map.of())) .get(packageInstance.name + ":" + plugin.name); if (pkg != null) { printRed( @@ -737,12 +735,12 @@ Map getPackageParams(String packageName, String collection) { false) /* Making a collection-request, but already baked into path */); return (Map) Objects.requireNonNullElse( - response._get("/response/params/packages/" + packageName), Collections.emptyMap()); + response._get("/response/params/packages/" + packageName), Map.of()); } catch (Exception ex) { // This should be because there are no parameters. Be tolerant here. log.warn("There are no parameters to return for package: {}", packageName); - return Collections.emptyMap(); + return Map.of(); } } @@ -997,14 +995,11 @@ public void undeploy( PackageUtils.resolve( getMapper().writeValueAsString(cmd.payload), deployedPackage.parameterDefaults, - Collections.emptyMap(), + Map.of(), systemParams); String path = PackageUtils.resolve( - cmd.path, - deployedPackage.parameterDefaults, - Collections.emptyMap(), - systemParams); + cmd.path, deployedPackage.parameterDefaults, Map.of(), systemParams); printGreen("Executing " + payload + " for path:" + path); SolrCLI.postJsonToSolr(solrClient, path, payload); } catch (Exception ex) { diff --git a/solr/core/src/java/org/apache/solr/pkg/SolrPackageLoader.java b/solr/core/src/java/org/apache/solr/pkg/SolrPackageLoader.java index f3a86dd55d7b..fdfb98819641 100644 --- a/solr/core/src/java/org/apache/solr/pkg/SolrPackageLoader.java +++ b/solr/core/src/java/org/apache/solr/pkg/SolrPackageLoader.java @@ -78,7 +78,7 @@ public SolrPackage getPackage(String key) { } public Map getPackages() { - return Collections.emptyMap(); + return Map.of(); } public void refreshPackageConf() { diff --git a/solr/core/src/java/org/apache/solr/request/NumericFacets.java b/solr/core/src/java/org/apache/solr/request/NumericFacets.java index 0584a46e5f88..b6584a7829c5 100644 --- a/solr/core/src/java/org/apache/solr/request/NumericFacets.java +++ b/solr/core/src/java/org/apache/solr/request/NumericFacets.java @@ -18,7 +18,6 @@ import java.io.IOException; import java.util.ArrayDeque; -import java.util.Collections; import java.util.Date; import java.util.Deque; import java.util.HashMap; @@ -321,7 +320,7 @@ protected boolean lessThan(Entry a, Entry b) { // Entries from the PQ first, then using the terms dictionary for (Entry entry : counts) { final int readerIdx = ReaderUtil.subIndex(entry.docID, leaves); - final FunctionValues values = vs.getValues(Collections.emptyMap(), leaves.get(readerIdx)); + final FunctionValues values = vs.getValues(Map.of(), leaves.get(readerIdx)); result.add(values.strVal(entry.docID - leaves.get(readerIdx).docBase), entry.count); } @@ -339,7 +338,7 @@ protected boolean lessThan(Entry a, Entry b) { while (pq.size() > 0) { Entry entry = pq.pop(); final int readerIdx = ReaderUtil.subIndex(entry.docID, leaves); - final FunctionValues values = vs.getValues(Collections.emptyMap(), leaves.get(readerIdx)); + final FunctionValues values = vs.getValues(Map.of(), leaves.get(readerIdx)); alreadySeen.add(values.strVal(entry.docID - leaves.get(readerIdx).docBase)); } result.forEach((name, __) -> alreadySeen.add(name)); @@ -404,7 +403,7 @@ protected boolean lessThan(Entry a, Entry b) { while (pq.size() > 0) { final Entry entry = pq.pop(); final int readerIdx = ReaderUtil.subIndex(entry.docID, leaves); - final FunctionValues values = vs.getValues(Collections.emptyMap(), leaves.get(readerIdx)); + final FunctionValues values = vs.getValues(Map.of(), leaves.get(readerIdx)); counts.put(values.strVal(entry.docID - leaves.get(readerIdx).docBase), entry.count); } final Terms terms = searcher.getSlowAtomicReader().terms(fieldName); diff --git a/solr/core/src/java/org/apache/solr/request/SimpleFacets.java b/solr/core/src/java/org/apache/solr/request/SimpleFacets.java index 04531901f443..92bb0dc2e609 100644 --- a/solr/core/src/java/org/apache/solr/request/SimpleFacets.java +++ b/solr/core/src/java/org/apache/solr/request/SimpleFacets.java @@ -179,7 +179,7 @@ protected ParsedParams parseParams(String type, String param) throws SyntaxError DocSet docs = docsOrig; String facetValue = param; String key = param; - List tags = Collections.emptyList(); + List tags = List.of(); int threads = -1; if (localParams == null) { @@ -203,7 +203,7 @@ protected ParsedParams parseParams(String type, String param) throws SyntaxError key = localParams.get(CommonParams.OUTPUT_KEY, key); String tagStr = localParams.get(CommonParams.TAG); - tags = tagStr == null ? Collections.emptyList() : StrUtils.splitSmart(tagStr, ','); + tags = tagStr == null ? List.of() : StrUtils.splitSmart(tagStr, ','); String threadStr = localParams.get(CommonParams.THREADS); if (threadStr != null) { diff --git a/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java b/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java index a0ed740b9289..61fc413142bb 100644 --- a/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java +++ b/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java @@ -18,7 +18,6 @@ import io.opentelemetry.api.trace.Span; import java.security.Principal; -import java.util.Collections; import java.util.List; import java.util.Map; import org.apache.solr.client.solrj.SolrRequest; @@ -149,7 +148,7 @@ default String getPath() { * would contain {segment1:x ,segment2:y} */ default Map getPathTemplateValues() { - return Collections.emptyMap(); + return Map.of(); } /** @@ -159,7 +158,7 @@ default Map getPathTemplateValues() { * @param validateInput , If true it is validated against the json schema spec */ default List getCommands(boolean validateInput) { - return Collections.emptyList(); + return List.of(); } default String getHttpMethod() { diff --git a/solr/core/src/java/org/apache/solr/request/SolrQueryRequestBase.java b/solr/core/src/java/org/apache/solr/request/SolrQueryRequestBase.java index 975d9a288b3d..58c2b09db7b5 100644 --- a/solr/core/src/java/org/apache/solr/request/SolrQueryRequestBase.java +++ b/solr/core/src/java/org/apache/solr/request/SolrQueryRequestBase.java @@ -18,7 +18,6 @@ import java.io.Closeable; import java.security.Principal; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -225,7 +224,7 @@ public List getCommands(boolean validateInput) { } protected Map getValidators() { - return Collections.emptyMap(); + return Map.of(); } private record LocalPrincipal(String user) implements Principal { diff --git a/solr/core/src/java/org/apache/solr/response/transform/DocTransformer.java b/solr/core/src/java/org/apache/solr/response/transform/DocTransformer.java index 0acd9e95026a..109afb979cc9 100644 --- a/solr/core/src/java/org/apache/solr/response/transform/DocTransformer.java +++ b/solr/core/src/java/org/apache/solr/response/transform/DocTransformer.java @@ -18,7 +18,7 @@ import java.io.IOException; import java.util.Collection; -import java.util.Collections; +import java.util.Set; import org.apache.solr.common.SolrDocument; import org.apache.solr.response.QueryResponseWriter; import org.apache.solr.response.ResultContext; @@ -68,12 +68,11 @@ public void setContext(ResultContext context) { * is acceptable. */ public Collection getRawFields() { - return Collections.emptySet(); + return Set.of(); } /** - * Indicates if this transformer requires access to the underlying index to perform it's - * functions. + * Indicates if this transformer requires access to the underlying index to perform its functions. * *

In some situations (notably RealTimeGet) this method may be called before {@link * #setContext} to determine if the transformer must be given a "full" ResultContext and accurate 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 2324f8904591..65c482ad25e0 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 @@ -18,7 +18,6 @@ import java.io.IOException; import java.util.Collection; -import java.util.Collections; import java.util.Iterator; import java.util.Map; import java.util.Set; @@ -199,7 +198,7 @@ public String getName() { @Override public Collection getRawFields() { - return updater.isJSON ? Collections.singleton(updater.display) : Collections.emptySet(); + return updater.isJSON ? Set.of(updater.display) : Set.of(); } } diff --git a/solr/core/src/java/org/apache/solr/schema/AbstractSpatialFieldType.java b/solr/core/src/java/org/apache/solr/schema/AbstractSpatialFieldType.java index 7fe850b1bdcf..e0e7ff508a3a 100644 --- a/solr/core/src/java/org/apache/solr/schema/AbstractSpatialFieldType.java +++ b/solr/core/src/java/org/apache/solr/schema/AbstractSpatialFieldType.java @@ -110,7 +110,7 @@ public abstract class AbstractSpatialFieldType extend protected final Set supportedScoreModes; protected AbstractSpatialFieldType() { - this(Collections.emptySet()); + this(Set.of()); } protected AbstractSpatialFieldType(Set moreScoreModes) { @@ -242,7 +242,7 @@ public List createFields(SchemaField field, Object val) { } if (shape == null) { log.debug("Field {}: null shape for input: {}", field, val); - return Collections.emptyList(); + return List.of(); } List result = new ArrayList<>(); diff --git a/solr/core/src/java/org/apache/solr/schema/FieldType.java b/solr/core/src/java/org/apache/solr/schema/FieldType.java index 6b1404c57064..0f72e49747a6 100644 --- a/solr/core/src/java/org/apache/solr/schema/FieldType.java +++ b/solr/core/src/java/org/apache/solr/schema/FieldType.java @@ -348,7 +348,7 @@ public List createFields(SchemaField field, Object value) { throw new UnsupportedOperationException( "This field type does not support doc values: " + this); } - return f == null ? Collections.emptyList() : Collections.singletonList(f); + return f == null ? List.of() : Collections.singletonList(f); } /** 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 e350b6233b56..3571dd2a07d8 100644 --- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java +++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java @@ -1501,7 +1501,7 @@ private FieldType dynFieldType(String fieldName) { public List getCopySources(String destField) { SchemaField f = getField(destField); if (!isCopyFieldTarget(f)) { - return Collections.emptyList(); + return List.of(); } List fieldNames = new ArrayList<>(); for (Map.Entry> cfs : copyFieldsMap.entrySet()) { @@ -1556,7 +1556,7 @@ public boolean isCopyFieldTarget(SchemaField f) { /** Get a map of property name -> value for the whole schema. */ public Map getNamedPropertyValues() { - return getNamedPropertyValues(null, new MapSolrParams(Collections.emptyMap())); + return getNamedPropertyValues(null, new MapSolrParams(Map.of())); } public static class SchemaProps implements MapSerializable { @@ -1801,7 +1801,7 @@ public List> getCopyFieldProperties( * @see #newField(String, String, Map) */ public IndexSchema addField(SchemaField newField, boolean persist) { - return addFields(Collections.singletonList(newField), Collections.emptyMap(), persist); + return addFields(Collections.singletonList(newField), Map.of(), persist); } public IndexSchema addField(SchemaField newField) { @@ -1832,7 +1832,7 @@ public IndexSchema addField(SchemaField newField, Collection copyFieldNa * @see #newField(String, String, Map) */ public IndexSchema addFields(Collection newFields) { - return addFields(newFields, Collections.>emptyMap(), true); + return addFields(newFields, Map.of(), true); } /** 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 e1d8ad5b5ab5..e1be86a3d05e 100644 --- a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java +++ b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java @@ -26,7 +26,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -435,7 +434,7 @@ public ManagedIndexSchema addFields( if (isMutable) { boolean success = false; if (copyFieldNames == null) { - copyFieldNames = Collections.emptyMap(); + copyFieldNames = Map.of(); } newSchema = shallowCopy(true); @@ -639,7 +638,7 @@ public ManagedIndexSchema addDynamicFields( if (isMutable) { boolean success = false; if (copyFieldNames == null) { - copyFieldNames = Collections.emptyMap(); + copyFieldNames = Map.of(); } newSchema = shallowCopy(true); diff --git a/solr/core/src/java/org/apache/solr/schema/PointField.java b/solr/core/src/java/org/apache/solr/schema/PointField.java index 611dcfc43a41..e74e73f13207 100644 --- a/solr/core/src/java/org/apache/solr/schema/PointField.java +++ b/solr/core/src/java/org/apache/solr/schema/PointField.java @@ -20,7 +20,6 @@ import java.lang.invoke.MethodHandles; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Map; @@ -262,7 +261,7 @@ protected boolean isFieldUsed(SchemaField field) { @Override public List createFields(SchemaField sf, Object value) { if (!isFieldUsed(sf)) { - return Collections.emptyList(); + return List.of(); } List fields = new ArrayList<>(3); IndexableField field = null; diff --git a/solr/core/src/java/org/apache/solr/schema/SchemaField.java b/solr/core/src/java/org/apache/solr/schema/SchemaField.java index 2a413bf37299..ef3c5559affe 100644 --- a/solr/core/src/java/org/apache/solr/schema/SchemaField.java +++ b/solr/core/src/java/org/apache/solr/schema/SchemaField.java @@ -46,7 +46,7 @@ public final class SchemaField extends FieldProperties implements IndexableField boolean required = false; // this can't be final since it may be changed dynamically /** Declared field property overrides */ - Map args = Collections.emptyMap(); + Map args = Map.of(); /** * Create a new SchemaField with the given name and type, using all the default properties from 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 b2ae09fcd226..fc2d4bcb49e2 100644 --- a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java +++ b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java @@ -34,7 +34,6 @@ import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -306,7 +305,7 @@ public boolean perform(SchemaChange op, SchemaManager mgr) throws SchemaOperatio mgr.managedIndexSchema.newField( name, type, convertToMapExcluding(addFieldOp, propsToOmit)); mgr.managedIndexSchema = - mgr.managedIndexSchema.addFields(singletonList(field), Collections.emptyMap(), false); + mgr.managedIndexSchema.addFields(singletonList(field), Map.of(), false); return true; } catch (Exception e) { log.error("Could not add field", e); @@ -342,8 +341,7 @@ public boolean perform(SchemaChange op, SchemaManager mgr) throws SchemaOperatio mgr.managedIndexSchema.newDynamicField( name, type, convertToMapExcluding(addDynFieldOp, propsToOmit)); mgr.managedIndexSchema = - mgr.managedIndexSchema.addDynamicFields( - singletonList(field), Collections.emptyMap(), false); + mgr.managedIndexSchema.addDynamicFields(singletonList(field), Map.of(), false); return true; } catch (Exception e) { log.error("Could not add dynamic field", e); diff --git a/solr/core/src/java/org/apache/solr/search/BitDocSet.java b/solr/core/src/java/org/apache/solr/search/BitDocSet.java index c45cbd5d8932..db55581b3394 100644 --- a/solr/core/src/java/org/apache/solr/search/BitDocSet.java +++ b/solr/core/src/java/org/apache/solr/search/BitDocSet.java @@ -17,7 +17,7 @@ package org.apache.solr.search; import java.util.Collection; -import java.util.Collections; +import java.util.List; import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.search.DocIdSetIterator; import org.apache.lucene.util.Accountable; @@ -331,7 +331,7 @@ public long ramBytesUsed() { @Override public Collection getChildResources() { - return Collections.emptyList(); + return List.of(); } @Override diff --git a/solr/core/src/java/org/apache/solr/search/CaffeineCache.java b/solr/core/src/java/org/apache/solr/search/CaffeineCache.java index 1ccf30145d0c..520dd2a4e80d 100644 --- a/solr/core/src/java/org/apache/solr/search/CaffeineCache.java +++ b/solr/core/src/java/org/apache/solr/search/CaffeineCache.java @@ -29,7 +29,6 @@ import java.io.UncheckedIOException; import java.lang.invoke.MethodHandles; import java.time.Duration; -import java.util.Collections; import java.util.Locale; import java.util.Map; import java.util.Map.Entry; @@ -399,14 +398,13 @@ public void warm(SolrIndexSearcher searcher, SolrCache old) { } long warmingStartTime = System.nanoTime(); - Map hottest = Collections.emptyMap(); + Map hottest = Map.of(); CaffeineCache other = (CaffeineCache) old; // warm entries if (isAutowarmingOn()) { int size = autowarm.getWarmCount(other.cache.asMap().size()); - hottest = - other.cache.policy().eviction().map(p -> p.hottest(size)).orElse(Collections.emptyMap()); + hottest = other.cache.policy().eviction().map(p -> p.hottest(size)).orElse(Map.of()); } for (Entry entry : hottest.entrySet()) { diff --git a/solr/core/src/java/org/apache/solr/search/DocSlice.java b/solr/core/src/java/org/apache/solr/search/DocSlice.java index 7c01493aac66..f0c63a1b2695 100644 --- a/solr/core/src/java/org/apache/solr/search/DocSlice.java +++ b/solr/core/src/java/org/apache/solr/search/DocSlice.java @@ -17,7 +17,7 @@ package org.apache.solr.search; import java.util.Collection; -import java.util.Collections; +import java.util.List; import org.apache.lucene.search.TotalHits; import org.apache.lucene.util.Accountable; import org.apache.lucene.util.RamUsageEstimator; @@ -164,7 +164,7 @@ public long ramBytesUsed() { @Override public Collection getChildResources() { - return Collections.emptyList(); + return List.of(); } @Override diff --git a/solr/core/src/java/org/apache/solr/search/NumericHidingLeafReader.java b/solr/core/src/java/org/apache/solr/search/NumericHidingLeafReader.java index 0e48c72900c9..36a7e6177f4b 100644 --- a/solr/core/src/java/org/apache/solr/search/NumericHidingLeafReader.java +++ b/solr/core/src/java/org/apache/solr/search/NumericHidingLeafReader.java @@ -19,6 +19,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collections; +import java.util.Map; import org.apache.lucene.index.BinaryDocValues; import org.apache.lucene.index.DocValuesSkipIndexType; import org.apache.lucene.index.DocValuesType; @@ -71,7 +72,7 @@ private NumericHidingLeafReader(LeafReader in, String field) { DocValuesType.NONE, DocValuesSkipIndexType.NONE, -1, - Collections.emptyMap(), + Map.of(), fi.getPointDimensionCount(), fi.getPointIndexDimensionCount(), fi.getPointNumBytes(), diff --git a/solr/core/src/java/org/apache/solr/search/QueryUtils.java b/solr/core/src/java/org/apache/solr/search/QueryUtils.java index 60538d73a315..321391a97847 100644 --- a/solr/core/src/java/org/apache/solr/search/QueryUtils.java +++ b/solr/core/src/java/org/apache/solr/search/QueryUtils.java @@ -290,7 +290,7 @@ public static List parseFilterQueries(SolrQueryRequest req) throws Syntax return filters; } - return Collections.emptyList(); + return List.of(); } /** @@ -313,7 +313,7 @@ public static Set getTaggedQueries(SolrQueryRequest req, Collection tagMap = (Map) req.getContext().get("tags"); if (tagMap == null || tagMap.isEmpty() || desiredTags == null || desiredTags.isEmpty()) { - return Collections.emptySet(); + return Set.of(); } Set taggedQueries = Collections.newSetFromMap(new IdentityHashMap<>()); diff --git a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java index 407f478be0aa..862b6a22ac41 100644 --- a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java +++ b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java @@ -24,7 +24,6 @@ import java.lang.invoke.MethodHandles; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.List; @@ -140,7 +139,7 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI // These should *only* be used for debugging or monitoring purposes public static final AtomicLong numOpens = new AtomicLong(); public static final AtomicLong numCloses = new AtomicLong(); - private static final Map> NO_GENERIC_CACHES = Collections.emptyMap(); + private static final Map> NO_GENERIC_CACHES = Map.of(); private static final SolrCache[] NO_CACHES = new SolrCache[0]; public static final int EXECUTOR_MAX_CPU_THREADS = Runtime.getRuntime().availableProcessors(); diff --git a/solr/core/src/java/org/apache/solr/search/SolrReturnFields.java b/solr/core/src/java/org/apache/solr/search/SolrReturnFields.java index 939cf9b778c2..bf850f4de8b5 100644 --- a/solr/core/src/java/org/apache/solr/search/SolrReturnFields.java +++ b/solr/core/src/java/org/apache/solr/search/SolrReturnFields.java @@ -68,7 +68,7 @@ public class SolrReturnFields extends ReturnFields { protected DocTransformer transformer; protected boolean _wantsScore = false; protected boolean _wantsAllFields = false; - protected Map renameFields = Collections.emptyMap(); + protected Map renameFields = Map.of(); private final Map scoreDependentFields = new HashMap<>(); diff --git a/solr/core/src/java/org/apache/solr/search/SortSpecParsing.java b/solr/core/src/java/org/apache/solr/search/SortSpecParsing.java index d4f88168f37e..5a454f2f6c98 100644 --- a/solr/core/src/java/org/apache/solr/search/SortSpecParsing.java +++ b/solr/core/src/java/org/apache/solr/search/SortSpecParsing.java @@ -17,7 +17,6 @@ package org.apache.solr.search; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.apache.lucene.queries.function.ValueSource; import org.apache.lucene.search.Sort; @@ -219,6 +218,6 @@ static ValueSource parseValueSource(QParser parser, StrParser sp, int start) thr } private static SortSpec newEmptySortSpec() { - return new SortSpec(null, Collections.emptyList()); + return new SortSpec(null, List.of()); } } diff --git a/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java b/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java index 53e1f2a2f679..1880d290befa 100644 --- a/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java +++ b/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java @@ -19,7 +19,6 @@ import com.carrotsearch.hppc.IntHashSet; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.List; import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.index.ReaderUtil; @@ -772,7 +771,7 @@ public long ramBytesUsed() { @Override public Collection getChildResources() { - return Collections.emptyList(); + return List.of(); } @Override diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessor.java b/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessor.java index 3e8d3020294c..2dca4a5a35bf 100644 --- a/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessor.java +++ b/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessor.java @@ -22,7 +22,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.HashMap; @@ -1042,7 +1041,7 @@ public void resize(Resizer resizer) { @SuppressWarnings({"unchecked"}) static List asList(Object list) { - return list != null ? (List) list : Collections.emptyList(); + return list != null ? (List) list : List.of(); } @SuppressWarnings({"rawtypes", "unchecked"}) diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetMerger.java b/solr/core/src/java/org/apache/solr/search/facet/FacetMerger.java index 90b6a76d1c44..b5d190dfa72a 100644 --- a/solr/core/src/java/org/apache/solr/search/facet/FacetMerger.java +++ b/solr/core/src/java/org/apache/solr/search/facet/FacetMerger.java @@ -21,9 +21,9 @@ import java.util.ArrayList; import java.util.BitSet; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.IdentityHashMap; +import java.util.List; import java.util.Map; public abstract class FacetMerger { @@ -100,7 +100,7 @@ public boolean setBucketWasMissing(boolean newVal) { new IdentityHashMap<>(4); public Collection getSubsWithRefinement(FacetRequest freq) { - if (freq.getSubFacets().isEmpty()) return Collections.emptyList(); + if (freq.getSubFacets().isEmpty()) return List.of(); Collection subs = refineSubMap.get(freq); if (subs != null) return subs; @@ -115,7 +115,7 @@ public Collection getSubsWithRefinement(FacetRequest freq) { } if (subs == null) { - subs = Collections.emptyList(); + subs = List.of(); } refineSubMap.put(freq, subs); return subs; @@ -125,7 +125,7 @@ public Collection getSubsWithRefinement(FacetRequest freq) { new IdentityHashMap<>(4); public Collection getSubsWithPartial(FacetRequest freq) { - if (freq.getSubFacets().isEmpty()) return Collections.emptyList(); + if (freq.getSubFacets().isEmpty()) return List.of(); Collection subs = partialSubsMap.get(freq); if (subs != null) return subs; @@ -143,7 +143,7 @@ public Collection getSubsWithPartial(FacetRequest freq) { } if (subs == null) { - subs = Collections.emptyList(); + subs = List.of(); } partialSubsMap.put(freq, subs); return subs; diff --git a/solr/core/src/java/org/apache/solr/search/facet/SlotAcc.java b/solr/core/src/java/org/apache/solr/search/facet/SlotAcc.java index 93ea64749655..ceba52b6fcba 100644 --- a/solr/core/src/java/org/apache/solr/search/facet/SlotAcc.java +++ b/solr/core/src/java/org/apache/solr/search/facet/SlotAcc.java @@ -21,7 +21,6 @@ import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.function.IntFunction; @@ -827,7 +826,7 @@ public static List otherStructsOf(FacetProcessor process if (processor.countAcc instanceof SweepingCountSlotAcc) { return ((SweepingCountSlotAcc) processor.countAcc).others; } - return Collections.emptyList(); + return List.of(); } } diff --git a/solr/core/src/java/org/apache/solr/search/function/distance/GeoDistValueSourceParser.java b/solr/core/src/java/org/apache/solr/search/function/distance/GeoDistValueSourceParser.java index 3db627ea7d12..e5694dbd4f47 100644 --- a/solr/core/src/java/org/apache/solr/search/function/distance/GeoDistValueSourceParser.java +++ b/solr/core/src/java/org/apache/solr/search/function/distance/GeoDistValueSourceParser.java @@ -22,7 +22,6 @@ import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.List; import org.apache.lucene.queries.function.ValueSource; import org.apache.lucene.queries.function.valuesource.ConstNumberSource; @@ -245,7 +244,7 @@ private static class SpatialStrategyMultiValueSource extends VectorValueSource { final DistanceUnits distanceUnits; public SpatialStrategyMultiValueSource(SpatialStrategy strategy, DistanceUnits distanceUnits) { - super(Collections.emptyList()); + super(List.of()); this.strategy = strategy; this.distanceUnits = distanceUnits; } diff --git a/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/SearchGroupsFieldCommand.java b/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/SearchGroupsFieldCommand.java index 47a16531a299..c4d98a65a216 100644 --- a/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/SearchGroupsFieldCommand.java +++ b/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/SearchGroupsFieldCommand.java @@ -19,7 +19,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.List; import org.apache.lucene.queries.function.ValueSource; @@ -136,7 +135,7 @@ public SearchGroupsFieldCommandResult result() throws IOException { topGroups = (Collection>) values; } } else { - topGroups = Collections.emptyList(); + topGroups = List.of(); } final Integer groupCount; if (allGroupsCollector != null) { diff --git a/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/TopGroupsFieldCommand.java b/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/TopGroupsFieldCommand.java index a86f0ebae43d..dc9300c93e5f 100644 --- a/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/TopGroupsFieldCommand.java +++ b/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/TopGroupsFieldCommand.java @@ -20,7 +20,6 @@ import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.List; import org.apache.lucene.queries.function.ValueSource; @@ -152,7 +151,7 @@ private TopGroupsFieldCommand( @Override public List create() throws IOException { if (firstPhaseGroups.isEmpty()) { - return Collections.emptyList(); + return List.of(); } final List collectors = new ArrayList<>(1); diff --git a/solr/core/src/java/org/apache/solr/search/join/FiltersQParser.java b/solr/core/src/java/org/apache/solr/search/join/FiltersQParser.java index 05c705aa1ce1..b031f1365667 100644 --- a/solr/core/src/java/org/apache/solr/search/join/FiltersQParser.java +++ b/solr/core/src/java/org/apache/solr/search/join/FiltersQParser.java @@ -18,7 +18,6 @@ package org.apache.solr.search.join; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; import java.util.IdentityHashMap; import java.util.Map; @@ -92,7 +91,7 @@ protected void exclude(Collection clauses) { if (tagMap != null && !tagMap.isEmpty() && !tagsToExclude.isEmpty()) { excludeSet = excludeSet(tagMap, tagsToExclude); } else { - excludeSet = Collections.emptySet(); + excludeSet = Set.of(); } clauses.removeAll(excludeSet); } diff --git a/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java b/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java index 59f0eb4d8e3e..795c117a0a78 100644 --- a/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java +++ b/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java @@ -19,7 +19,6 @@ import java.io.IOException; import java.lang.invoke.MethodHandles; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -72,11 +71,10 @@ protected StatsSource doGet(SolrQueryRequest req) { @SuppressWarnings({"unchecked"}) Map currentGlobalColStats = (Map) - req.getContext().getOrDefault(CURRENT_GLOBAL_COL_STATS, Collections.emptyMap()); + req.getContext().getOrDefault(CURRENT_GLOBAL_COL_STATS, Map.of()); @SuppressWarnings({"unchecked"}) Map currentGlobalTermStats = - (Map) - req.getContext().getOrDefault(CURRENT_GLOBAL_TERM_STATS, Collections.emptyMap()); + (Map) req.getContext().getOrDefault(CURRENT_GLOBAL_TERM_STATS, Map.of()); if (log.isDebugEnabled()) { log.debug( "Returning StatsSource. Collection stats={}, Term stats size= {}", @@ -156,11 +154,11 @@ protected void printStats(SolrQueryRequest req) { @SuppressWarnings({"unchecked"}) Map> perShardTermStats = (Map>) - req.getContext().getOrDefault(PER_SHARD_TERM_STATS, Collections.emptyMap()); + req.getContext().getOrDefault(PER_SHARD_TERM_STATS, Map.of()); @SuppressWarnings({"unchecked"}) Map> perShardColStats = (Map>) - req.getContext().getOrDefault(PER_SHARD_COL_STATS, Collections.emptyMap()); + req.getContext().getOrDefault(PER_SHARD_COL_STATS, Map.of()); log.debug("perShardColStats={}, perShardTermStats={}", perShardColStats, perShardTermStats); } @@ -318,7 +316,7 @@ protected Map getPerShardColStats(ResponseBuilder rb, S @SuppressWarnings({"unchecked"}) Map> perShardColStats = (Map>) - rb.req.getContext().getOrDefault(PER_SHARD_COL_STATS, Collections.emptyMap()); + rb.req.getContext().getOrDefault(PER_SHARD_COL_STATS, Map.of()); return perShardColStats.get(shard); } @@ -326,7 +324,7 @@ protected TermStats getPerShardTermStats(SolrQueryRequest req, String t, String @SuppressWarnings({"unchecked"}) Map> perShardTermStats = (Map>) - req.getContext().getOrDefault(PER_SHARD_TERM_STATS, Collections.emptyMap()); + req.getContext().getOrDefault(PER_SHARD_TERM_STATS, Map.of()); Map cache = perShardTermStats.get(shard); return (cache != null) ? cache.get(t) : null; // Term doesn't exist in shard } @@ -390,7 +388,7 @@ public TermStatistics termStatistics( TermStats termStats = termStatsCache.get(term.toString()); // TermStats == null is also true if term has no docFreq anyway, // see returnLocalStats, if docFreq == 0, they are not added anyway - // Not sure we need a warning here + // Not sure if we need a warning here if (termStats == null) { log.debug("Missing global termStats info for term={}, using local stats", term); metrics.missingGlobalTermStats.increment(); diff --git a/solr/core/src/java/org/apache/solr/search/vector/AbstractVectorQParserBase.java b/solr/core/src/java/org/apache/solr/search/vector/AbstractVectorQParserBase.java index ec5426d6d938..3c9a6bc3c9d5 100644 --- a/solr/core/src/java/org/apache/solr/search/vector/AbstractVectorQParserBase.java +++ b/solr/core/src/java/org/apache/solr/search/vector/AbstractVectorQParserBase.java @@ -18,7 +18,6 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.apache.lucene.search.Query; import org.apache.solr.common.SolrException; @@ -172,7 +171,7 @@ protected Query getFilterQuery() throws SolrException, SyntaxError { // means we should replace globalFQs (even with a possibly empty list) globalFQs = new ArrayList<>(QueryUtils.getTaggedQueries(req, includedGlobalFQTags)); } - if (null != excludedGlobalFQTags) { + if (!excludedGlobalFQTags.isEmpty()) { globalFQs.removeAll(QueryUtils.getTaggedQueries(req, excludedGlobalFQTags)); } @@ -192,7 +191,7 @@ protected Query getFilterQuery() throws SolrException, SyntaxError { private List getLocalParamTags(final String param) { final String[] strVals = localParams.getParams(param); if (null == strVals) { - return Collections.emptyList(); + return List.of(); } final List tags = new ArrayList<>(strVals.length * 2); for (String val : strVals) { diff --git a/solr/core/src/java/org/apache/solr/security/AllowListUrlChecker.java b/solr/core/src/java/org/apache/solr/security/AllowListUrlChecker.java index 0076cf1f41f5..039ce146f4d8 100644 --- a/solr/core/src/java/org/apache/solr/security/AllowListUrlChecker.java +++ b/solr/core/src/java/org/apache/solr/security/AllowListUrlChecker.java @@ -56,7 +56,7 @@ public class AllowListUrlChecker { static { try { ALLOW_ALL = - new AllowListUrlChecker(Collections.emptyList()) { + new AllowListUrlChecker(List.of()) { @Override public void checkAllowList(List urls, ClusterState clusterState) { // Allow. @@ -207,7 +207,7 @@ public String toString() { @VisibleForTesting static Set parseHostPorts(List urls) throws MalformedURLException { if (urls == null || urls.isEmpty()) { - return Collections.emptySet(); + return Set.of(); } Set hostPorts = new HashSet<>(); for (String urlString : urls) { diff --git a/solr/core/src/java/org/apache/solr/security/ExternalRoleRuleBasedAuthorizationPlugin.java b/solr/core/src/java/org/apache/solr/security/ExternalRoleRuleBasedAuthorizationPlugin.java index d58b65828063..2172ee8ee416 100644 --- a/solr/core/src/java/org/apache/solr/security/ExternalRoleRuleBasedAuthorizationPlugin.java +++ b/solr/core/src/java/org/apache/solr/security/ExternalRoleRuleBasedAuthorizationPlugin.java @@ -17,7 +17,6 @@ package org.apache.solr.security; import java.security.Principal; -import java.util.Collections; import java.util.Map; import java.util.Set; import org.apache.solr.common.SolrException; @@ -48,7 +47,7 @@ public Set getUserRoles(Principal principal) { if (principal instanceof VerifiedUserRoles) { return ((VerifiedUserRoles) principal).getVerifiedRoles(); } else { - return Collections.emptySet(); + return Set.of(); } } } diff --git a/solr/core/src/java/org/apache/solr/security/cert/PathBasedCertPrincipalResolver.java b/solr/core/src/java/org/apache/solr/security/cert/PathBasedCertPrincipalResolver.java index 4fc1718ae649..bc681685981f 100644 --- a/solr/core/src/java/org/apache/solr/security/cert/PathBasedCertPrincipalResolver.java +++ b/solr/core/src/java/org/apache/solr/security/cert/PathBasedCertPrincipalResolver.java @@ -103,7 +103,7 @@ public class PathBasedCertPrincipalResolver extends PathBasedCertResolverBase public PathBasedCertPrincipalResolver(Map params) { this.pattern = createCertResolverPattern(params, CertUtil.SUBJECT_DN_PREFIX); Map extractConfig = - (Map) params.getOrDefault(PARAM_EXTRACT, Collections.emptyMap()); + (Map) params.getOrDefault(PARAM_EXTRACT, Map.of()); this.startPattern = extractConfig.getOrDefault(PARAM_AFTER, ""); this.endPattern = extractConfig.getOrDefault(PARAM_BEFORE, ""); } @@ -124,7 +124,7 @@ public Principal resolvePrincipal(X509Certificate certificate) getValuesFromPaths(certificate, Collections.singletonList(pattern)); String basePrincipal = null; if (matches != null && !matches.isEmpty()) { - Set fieldValues = matches.getOrDefault(pattern.getName(), Collections.emptySet()); + Set fieldValues = matches.getOrDefault(pattern.getName(), Set.of()); basePrincipal = fieldValues.stream().findFirst().orElse(null); } diff --git a/solr/core/src/java/org/apache/solr/security/cert/PathBasedCertResolverBase.java b/solr/core/src/java/org/apache/solr/security/cert/PathBasedCertResolverBase.java index 486a1193b8b2..8ba17b471e39 100644 --- a/solr/core/src/java/org/apache/solr/security/cert/PathBasedCertResolverBase.java +++ b/solr/core/src/java/org/apache/solr/security/cert/PathBasedCertResolverBase.java @@ -24,7 +24,6 @@ import java.lang.invoke.MethodHandles; import java.security.cert.CertificateParsingException; import java.security.cert.X509Certificate; -import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.List; @@ -64,14 +63,12 @@ protected CertResolverPattern createCertResolverPattern( Map config, String defaultPath) { String path = ((String) config.getOrDefault(PARAM_PATH, defaultPath)).toLowerCase(Locale.ROOT); String name = ((String) config.getOrDefault(PARAM_NAME, path)).toLowerCase(Locale.ROOT); - Map filter = - (Map) config.getOrDefault(PARAM_FILTER, Collections.emptyMap()); + Map filter = (Map) config.getOrDefault(PARAM_FILTER, Map.of()); String checkType = (String) filter.getOrDefault( PARAM_FILTER_CHECK_TYPE, CertResolverPattern.CheckType.WILDCARD.toString()); - List values = - (List) filter.getOrDefault(PARAM_FILTER_VALUES, Collections.emptyList()); + List values = (List) filter.getOrDefault(PARAM_FILTER_VALUES, List.of()); Set lowerCaseValues = values.stream().map(value -> value.toLowerCase(Locale.ROOT)).collect(Collectors.toSet()); return new CertResolverPattern(name, path, checkType, lowerCaseValues); diff --git a/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java b/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java index 81d439dd2ece..ae042c7343b7 100644 --- a/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java +++ b/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java @@ -194,7 +194,7 @@ public SolrParams getQueryParams() { /** The collection(s) referenced in this request. Populated in {@link #init()}. Not null. */ public List getCollectionsList() { - return collectionsList != null ? collectionsList : Collections.emptyList(); + return collectionsList != null ? collectionsList : List.of(); } @SuppressForbidden( @@ -350,7 +350,7 @@ protected DocCollection resolveDocCollection(String collectionName) { */ protected List resolveCollectionListOrAlias(String collectionStr) { if (collectionStr == null || collectionStr.trim().isEmpty()) { - return Collections.emptyList(); + return List.of(); } List result = null; LinkedHashSet uniqueList = null; @@ -650,7 +650,7 @@ protected void sendError(Throwable ex) throws IOException { solrParams = SolrRequestParsers.parseQueryString(req.getQueryString()); } else { // we have no params at all, use empty ones: - solrParams = new MapSolrParams(Collections.emptyMap()); + solrParams = new MapSolrParams(Map.of()); } solrReq = new SolrQueryRequestBase(core, solrParams) {}; } @@ -1060,7 +1060,7 @@ public String toString() { public List getCommands(boolean validateInput) { if (parsedCommands == null) { Iterable contentStreams = solrReq.getContentStreams(); - if (contentStreams == null) parsedCommands = Collections.emptyList(); + if (contentStreams == null) parsedCommands = List.of(); else { parsedCommands = ApiBag.getCommandOperations( @@ -1075,7 +1075,7 @@ protected ValidatingJsonMap getSpec() { } protected Map getValidators() { - return Collections.emptyMap(); + return Map.of(); } /** diff --git a/solr/core/src/java/org/apache/solr/spelling/AbstractLuceneSpellChecker.java b/solr/core/src/java/org/apache/solr/spelling/AbstractLuceneSpellChecker.java index 1e8d280abcb5..25cb239b2e04 100644 --- a/solr/core/src/java/org/apache/solr/spelling/AbstractLuceneSpellChecker.java +++ b/solr/core/src/java/org/apache/solr/spelling/AbstractLuceneSpellChecker.java @@ -19,7 +19,6 @@ import java.io.IOException; import java.nio.file.Path; import java.util.Arrays; -import java.util.Collections; import java.util.Comparator; import java.util.List; import org.apache.lucene.index.IndexReader; @@ -142,7 +141,7 @@ public SpellingResult getSuggestions(SpellingOptions options) throws IOException int count = Math.max(options.count, AbstractLuceneSpellChecker.DEFAULT_SUGGESTION_COUNT); for (Token token : options.tokens) { if (token.length() == 0) { - result.add(token, Collections.emptyList()); + result.add(token, List.of()); continue; } String tokenText = new String(token.buffer(), 0, token.length()); @@ -194,7 +193,7 @@ public SpellingResult getSuggestions(SpellingOptions options) throws IOException result.add(token, suggestions[i], reader.docFreq(term)); } } else { - List suggList = Collections.emptyList(); + List suggList = List.of(); result.add(token, suggList); } } else { @@ -205,7 +204,7 @@ public SpellingResult getSuggestions(SpellingOptions options) throws IOException } result.add(token, suggList); } else { - List suggList = Collections.emptyList(); + List suggList = List.of(); result.add(token, suggList); } } diff --git a/solr/core/src/java/org/apache/solr/spelling/ConjunctionSolrSpellChecker.java b/solr/core/src/java/org/apache/solr/spelling/ConjunctionSolrSpellChecker.java index 8e72558bfa05..e031ade99381 100644 --- a/solr/core/src/java/org/apache/solr/spelling/ConjunctionSolrSpellChecker.java +++ b/solr/core/src/java/org/apache/solr/spelling/ConjunctionSolrSpellChecker.java @@ -18,7 +18,6 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; @@ -172,7 +171,7 @@ private SpellingResult mergeCheckers(SpellingResult[] results, int numSug) { } if (!anyData) { if (numberAdded == 0) { - combinedResult.add(original, Collections.emptyList()); + combinedResult.add(original, List.of()); Integer tokenFrequency = combinedTokenFrequency.get(original); combinedResult.addFrequency(original, tokenFrequency == null ? 0 : tokenFrequency); } diff --git a/solr/core/src/java/org/apache/solr/spelling/DirectSolrSpellChecker.java b/solr/core/src/java/org/apache/solr/spelling/DirectSolrSpellChecker.java index 9c157729ad1c..7ac64e86a230 100644 --- a/solr/core/src/java/org/apache/solr/spelling/DirectSolrSpellChecker.java +++ b/solr/core/src/java/org/apache/solr/spelling/DirectSolrSpellChecker.java @@ -19,7 +19,6 @@ import java.io.IOException; import java.lang.invoke.MethodHandles; import java.util.ArrayList; -import java.util.Collections; import java.util.Comparator; import java.util.List; import org.apache.lucene.index.Term; @@ -192,7 +191,7 @@ public SpellingResult getSuggestions(SpellingOptions options) throws IOException for (Token token : options.tokens) { if (token.length() == 0) { - result.add(token, Collections.emptyList()); + result.add(token, List.of()); continue; } String tokenText = token.toString(); @@ -227,7 +226,7 @@ public SpellingResult getSuggestions(SpellingOptions options) throws IOException } } if (suggestions.length == 0 && freq == 0) { - List empty = Collections.emptyList(); + List empty = List.of(); result.add(token, empty); } else { for (SuggestWord suggestion : suggestions) { diff --git a/solr/core/src/java/org/apache/solr/spelling/SpellingQueryConverter.java b/solr/core/src/java/org/apache/solr/spelling/SpellingQueryConverter.java index 95d96da350f3..6870459a377b 100644 --- a/solr/core/src/java/org/apache/solr/spelling/SpellingQueryConverter.java +++ b/solr/core/src/java/org/apache/solr/spelling/SpellingQueryConverter.java @@ -19,7 +19,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.lucene.analysis.TokenStream; @@ -103,7 +103,7 @@ public class SpellingQueryConverter extends QueryConverter { @Override public Collection convert(String original) { if (original == null) { // this can happen with q.alt = and no query - return Collections.emptyList(); + return List.of(); } boolean mightContainRangeQuery = (original.indexOf('[') != -1 || original.indexOf('{') != -1) diff --git a/solr/core/src/java/org/apache/solr/spelling/SuggestQueryConverter.java b/solr/core/src/java/org/apache/solr/spelling/SuggestQueryConverter.java index 4d78f7c68de6..da0bcbf3a555 100644 --- a/solr/core/src/java/org/apache/solr/spelling/SuggestQueryConverter.java +++ b/solr/core/src/java/org/apache/solr/spelling/SuggestQueryConverter.java @@ -19,7 +19,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; +import java.util.List; /** Passes the entire query string to the configured analyzer as-is. */ public class SuggestQueryConverter extends SpellingQueryConverter { @@ -27,7 +27,7 @@ public class SuggestQueryConverter extends SpellingQueryConverter { @Override public Collection convert(String original) { if (original == null) { // this can happen with q.alt = and no query - return Collections.emptyList(); + return List.of(); } Collection result = new ArrayList<>(); diff --git a/solr/core/src/java/org/apache/solr/spelling/WordBreakSolrSpellChecker.java b/solr/core/src/java/org/apache/solr/spelling/WordBreakSolrSpellChecker.java index 5689507c034a..1095acc2bd41 100644 --- a/solr/core/src/java/org/apache/solr/spelling/WordBreakSolrSpellChecker.java +++ b/solr/core/src/java/org/apache/solr/spelling/WordBreakSolrSpellChecker.java @@ -18,7 +18,6 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Locale; @@ -219,7 +218,7 @@ public SpellingResult getSuggestions(SpellingOptions options) throws IOException } breakSuggestionList.addAll(noBreakSuggestionList); - List combineSuggestionList = Collections.emptyList(); + List combineSuggestionList = List.of(); CombineSuggestion[] combineSuggestions = wbsp.suggestWordCombinations( termArr.toArray(new Term[0]), numSuggestions, ir, options.suggestMode); @@ -322,7 +321,7 @@ private void addToResult( String suggestion, int suggestionFrequency) { if (suggestion == null) { - result.add(token, Collections.emptyList()); + result.add(token, List.of()); result.addFrequency(token, tokenFrequency); } else { result.add(token, suggestion, suggestionFrequency); diff --git a/solr/core/src/java/org/apache/solr/spelling/suggest/SolrSuggester.java b/solr/core/src/java/org/apache/solr/spelling/suggest/SolrSuggester.java index 1498ede46284..34a51f66b3e8 100644 --- a/solr/core/src/java/org/apache/solr/spelling/suggest/SolrSuggester.java +++ b/solr/core/src/java/org/apache/solr/spelling/suggest/SolrSuggester.java @@ -25,7 +25,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.Collection; -import java.util.Collections; +import java.util.HashMap; import java.util.List; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardTokenizerFactory; @@ -108,7 +108,7 @@ public String init(NamedList config, SolrCore core) { } contextFilterQueryAnalyzer = - new TokenizerChain(new StandardTokenizerFactory(Collections.emptyMap()), null); + new TokenizerChain(new StandardTokenizerFactory(new HashMap<>()), null); // initialize appropriate lookup instance factory = core.getResourceLoader().newInstance(lookupImpl, LookupFactory.class); diff --git a/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java b/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java index 19a8e0135b93..30e7687eda2c 100644 --- a/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java +++ b/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java @@ -21,7 +21,6 @@ import java.io.IOException; import java.lang.invoke.MethodHandles; import java.lang.invoke.VarHandle; -import java.util.Collections; import java.util.Map; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.DelegatingAnalyzerWrapper; @@ -109,7 +108,7 @@ private SolrIndexConfig() { mergeSchedulerInfo = null; mergedSegmentWarmerInfo = null; // enable coarse-grained metrics by default - metricsInfo = new PluginInfo("metrics", Collections.emptyMap(), null, null); + metricsInfo = new PluginInfo("metrics", Map.of(), null, null); } private ConfigNode get(String s) { diff --git a/solr/core/src/java/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactory.java index 50c711458c96..9875961cca45 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactory.java +++ b/solr/core/src/java/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactory.java @@ -24,7 +24,6 @@ import java.lang.invoke.MethodHandles; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -131,7 +130,7 @@ public class AddSchemaFieldsUpdateProcessorFactory extends UpdateRequestProcesso private static final String MAX_CHARS_PARAM = "maxChars"; private static final String IS_DEFAULT_PARAM = "default"; - private List typeMappings = Collections.emptyList(); + private List typeMappings = List.of(); private SelectorParams inclusions = new SelectorParams(); private Collection exclusions = new ArrayList<>(); private SolrResourceLoader solrResourceLoader = null; @@ -450,7 +449,7 @@ public void processAdd(AddUpdateCommand cmd) throws IOException { .collect(Collectors.groupingBy(CopyFieldDef::getMaxChars))); } } - newFields.add(oldSchema.newField(fieldName, fieldTypeName, Collections.emptyMap())); + newFields.add(oldSchema.newField(fieldName, fieldTypeName, Map.of())); } if (newFields.isEmpty() && newCopyFields.isEmpty()) { // nothing to do - no fields will be added - exit from the retry loop @@ -494,7 +493,7 @@ public void processAdd(AddUpdateCommand cmd) throws IOException { // the schema on the request is the latest synchronized (oldSchema.getSchemaUpdateLock()) { try { - IndexSchema newSchema = oldSchema.addFields(newFields, Collections.emptyMap(), false); + IndexSchema newSchema = oldSchema.addFields(newFields, Map.of(), false); // Add copyFields for (Map.Entry>> entry : newCopyFields.entrySet()) { diff --git a/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateDocumentMerger.java b/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateDocumentMerger.java index dfee7e1f8f7f..f93c729695d0 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateDocumentMerger.java +++ b/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateDocumentMerger.java @@ -243,7 +243,7 @@ public static Set computeInPlaceUpdatableFields(AddUpdateCommand cmd) th // if _version_ field is not supported for in-place update, bail out early SchemaField versionField = schema.getFieldOrNull(CommonParams.VERSION_FIELD); if (versionField == null || !isSupportedFieldForInPlaceUpdate(versionField)) { - return Collections.emptySet(); + return Set.of(); } String routeFieldOrNull = getRouteField(cmd); @@ -266,7 +266,7 @@ public static Set computeInPlaceUpdatableFields(AddUpdateCommand cmd) th } if (!(fieldValue instanceof Map)) { // not an in-place update if there are fields that are not maps - return Collections.emptySet(); + return Set.of(); } // else it's an atomic update map... Map fieldValueMap = (Map) fieldValue; @@ -275,23 +275,23 @@ public static Set computeInPlaceUpdatableFields(AddUpdateCommand cmd) th Object obj = entry.getValue(); if (!op.equals("set") && !op.equals("inc")) { // not a supported in-place update op - return Collections.emptySet(); + return Set.of(); } else if (op.equals("set") && (obj == null || (obj instanceof Collection && ((Collection) obj).isEmpty()))) { // when operation is set and value is either null or empty list // treat the update as atomic instead of inplace - return Collections.emptySet(); + return Set.of(); } // fail fast if child doc if (isChildDoc(((Map) fieldValue).get(op))) { - return Collections.emptySet(); + return Set.of(); } } candidateFields.add(fieldName); } if (candidateFields.isEmpty()) { - return Collections.emptySet(); + return Set.of(); } // second pass over the candidates for in-place updates @@ -300,13 +300,12 @@ public static Set computeInPlaceUpdatableFields(AddUpdateCommand cmd) th SchemaField schemaField = schema.getField(fieldName); if (!isSupportedFieldForInPlaceUpdate(schemaField)) { - return Collections.emptySet(); + return Set.of(); } // if this field has copy target which is not supported for in place, then empty for (CopyField copyField : schema.getCopyFieldsList(fieldName)) { - if (!isSupportedFieldForInPlaceUpdate(copyField.getDestination())) - return Collections.emptySet(); + if (!isSupportedFieldForInPlaceUpdate(copyField.getDestination())) return Set.of(); } } @@ -323,7 +322,7 @@ public static Set computeInPlaceUpdatableFields(AddUpdateCommand cmd) th } for (String fieldName : candidateFields) { if (segmentSortingFields.contains(fieldName)) { - return Collections.emptySet(); // if this is used for segment sorting, DV updates can't work + return Set.of(); // if this is used for segment sorting, DV updates can't work } } @@ -497,7 +496,7 @@ private void doAddChildren( .orElseGet( () -> { final SolrInputField replacement = new SolrInputField(name); - replacement.setValue(Collections.emptyList()); + replacement.setValue(List.of()); return replacement; }); diff --git a/solr/core/src/java/org/apache/solr/update/processor/DocBasedVersionConstraintsProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/DocBasedVersionConstraintsProcessorFactory.java index c7fbcc888920..90307f9dc381 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/DocBasedVersionConstraintsProcessorFactory.java +++ b/solr/core/src/java/org/apache/solr/update/processor/DocBasedVersionConstraintsProcessorFactory.java @@ -19,7 +19,6 @@ import static org.apache.solr.common.SolrException.ErrorCode.SERVER_ERROR; import java.lang.invoke.MethodHandles; -import java.util.Collections; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -89,7 +88,7 @@ public class DocBasedVersionConstraintsProcessorFactory extends UpdateRequestPro private boolean ignoreOldUpdates = false; private List versionFields = null; - private List deleteVersionParamNames = Collections.emptyList(); + private List deleteVersionParamNames = List.of(); private boolean useFieldCache; private boolean supportMissingVersionOnOldDocs = false; private NamedList tombstoneConfig; diff --git a/solr/core/src/java/org/apache/solr/update/processor/FieldMutatingUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/FieldMutatingUpdateProcessorFactory.java index 97a246278ba8..ad937a51ca9f 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/FieldMutatingUpdateProcessorFactory.java +++ b/solr/core/src/java/org/apache/solr/update/processor/FieldMutatingUpdateProcessorFactory.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -100,10 +99,10 @@ public abstract class FieldMutatingUpdateProcessorFactory extends UpdateRequestP implements SolrCoreAware { public static final class SelectorParams { - public Set fieldName = Collections.emptySet(); - public Set typeName = Collections.emptySet(); - public Collection typeClass = Collections.emptyList(); - public Collection fieldRegex = Collections.emptyList(); + public Set fieldName = Set.of(); + public Set typeName = Set.of(); + public Collection typeClass = List.of(); + public Collection fieldRegex = List.of(); public Boolean fieldNameMatchesSchemaField = null; // null => not specified public boolean noSelectorsSpecified() { diff --git a/solr/core/src/java/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactory.java index 4e55fc3e01b2..b93d2ef25278 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactory.java +++ b/solr/core/src/java/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactory.java @@ -21,7 +21,7 @@ import java.io.IOException; import java.lang.invoke.MethodHandles; -import java.util.Collections; +import java.util.Set; import org.apache.lucene.util.BytesRef; import org.apache.solr.common.SolrException; import org.apache.solr.common.SolrInputDocument; @@ -43,9 +43,9 @@ * there already exists a document with the same uniqueKey value in the index. It will also skip * Atomic Updates to a document if that document does not already exist. This behaviour is applied * to each document in turn, so adding a batch of documents can result in some being added and some - * ignored, depending on what is already in the index. If all of the documents are skipped, no - * changes to the index will occur. These two forms of skipping can be switched on or off - * independently, by using init params: + * ignored, depending on what is already in the index. If all the documents are skipped, no changes + * to the index will occur. These two forms of skipping can be switched on or off independently, by + * using init params: * *
    *
  • skipInsertIfExists - This boolean parameter defaults to true, but @@ -197,11 +197,7 @@ boolean doesDocumentExist(BytesRef indexedDocId) { // we don't need any fields populated, we just need to know if the doc is in the tlog... SolrInputDocument oldDoc = RealTimeGetComponent.getInputDocumentFromTlog( - core, - indexedDocId, - null, - Collections.emptySet(), - RealTimeGetComponent.Resolution.PARTIAL); + core, indexedDocId, null, Set.of(), RealTimeGetComponent.Resolution.PARTIAL); if (oldDoc == RealTimeGetComponent.DELETED) { return false; } diff --git a/solr/core/src/java/org/apache/solr/update/processor/TemplateUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/TemplateUpdateProcessorFactory.java index bffae948cdcd..f37e4a4c419e 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/TemplateUpdateProcessorFactory.java +++ b/solr/core/src/java/org/apache/solr/update/processor/TemplateUpdateProcessorFactory.java @@ -18,7 +18,6 @@ package org.apache.solr.update.processor; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.function.Function; import java.util.regex.Matcher; @@ -100,7 +99,7 @@ public static List getVariables( String template, Cache cache, Pattern pattern) { Resolved r = getResolved(template, cache, pattern); if (r == null) { - return Collections.emptyList(); + return List.of(); } return new ArrayList<>(r.variables); } diff --git a/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java b/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java index f7f5cba58523..c842a3c96834 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java +++ b/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java @@ -18,7 +18,6 @@ import java.lang.invoke.MethodHandles; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; @@ -294,7 +293,7 @@ private static void insertBefore( } static List getReqProcessors(String processor, SolrCore core) { - if (processor == null) return Collections.emptyList(); + if (processor == null) return List.of(); List result = new ArrayList<>(); List names = StrUtils.splitSmart(processor, ','); for (String s : names) { 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 8b3aef7130c2..a32b61580009 100644 --- a/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java +++ b/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java @@ -817,7 +817,7 @@ public long ramBytesUsed() { @Override public Collection getChildResources() { - return Collections.emptyList(); + return List.of(); } } @@ -969,6 +969,6 @@ public long ramBytesUsed() { @Override public Collection getChildResources() { - return Collections.emptyList(); + return List.of(); } } diff --git a/solr/core/src/java/org/apache/solr/util/ModuleUtils.java b/solr/core/src/java/org/apache/solr/util/ModuleUtils.java index 4ff0836b5622..5039d7d65bd5 100644 --- a/solr/core/src/java/org/apache/solr/util/ModuleUtils.java +++ b/solr/core/src/java/org/apache/solr/util/ModuleUtils.java @@ -21,7 +21,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.Collection; -import java.util.Collections; +import java.util.List; import java.util.Set; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -56,7 +56,7 @@ public static Path getModuleLibPath(Path solrInstallDirPath, String moduleName) * @return set of raw volume names from sysprop and/or env.var */ static Set resolveFromSyspropOrEnv() { - return Set.copyOf(EnvUtils.getPropertyAsList("solr.modules", Collections.emptyList())); + return Set.copyOf(EnvUtils.getPropertyAsList("solr.modules", List.of())); } /** Returns true if a module name is valid and exists in the system */ @@ -75,7 +75,7 @@ public static Set listAvailableModules(Path solrInstallDirPath) { .collect(Collectors.toSet()); } catch (IOException e) { log.warn("Found no modules in {}", getModulesPath(solrInstallDirPath), e); - return Collections.emptySet(); + return Set.of(); } } diff --git a/solr/core/src/test/org/apache/solr/analysis/TokenizerChainTest.java b/solr/core/src/test/org/apache/solr/analysis/TokenizerChainTest.java index 5a8cc2bf656d..ca3a4bcc7cf0 100644 --- a/solr/core/src/test/org/apache/solr/analysis/TokenizerChainTest.java +++ b/solr/core/src/test/org/apache/solr/analysis/TokenizerChainTest.java @@ -16,7 +16,7 @@ */ package org.apache.solr.analysis; -import java.util.Collections; +import java.util.HashMap; import org.apache.lucene.analysis.TokenFilterFactory; import org.apache.lucene.analysis.core.LowerCaseFilterFactory; import org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilterFactory; @@ -30,10 +30,10 @@ public class TokenizerChainTest extends SolrTestCaseJ4 { public void testNormalization() { String fieldName = "f"; TokenFilterFactory[] tff = new TokenFilterFactory[2]; - tff[0] = new LowerCaseFilterFactory(Collections.emptyMap()); - tff[1] = new ASCIIFoldingFilterFactory(Collections.emptyMap()); + tff[0] = new LowerCaseFilterFactory(new HashMap<>()); + tff[1] = new ASCIIFoldingFilterFactory(new HashMap<>()); TokenizerChain tokenizerChain = - new TokenizerChain(new MockTokenizerFactory(Collections.emptyMap()), tff); + new TokenizerChain(new MockTokenizerFactory(new HashMap<>()), tff); assertEquals(new BytesRef("fooba"), tokenizerChain.normalize(fieldName, "FOOB\u00c4")); tokenizerChain.close(); } diff --git a/solr/core/src/test/org/apache/solr/cli/PostToolTest.java b/solr/core/src/test/org/apache/solr/cli/PostToolTest.java index dc9e7226dfb2..a238bd62c15a 100644 --- a/solr/core/src/test/org/apache/solr/cli/PostToolTest.java +++ b/solr/core/src/test/org/apache/solr/cli/PostToolTest.java @@ -28,9 +28,9 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; +import java.util.List; import java.util.Map; import java.util.Set; import org.apache.solr.SolrTestCaseJ4; @@ -336,7 +336,7 @@ public void testDoWebMode() throws IOException, URISyntaxException { assertEquals(3, num); // Without respecting robots.txt - postTool.pageFetcher.robotsCache.put("[ff01::114]", Collections.emptyList()); + postTool.pageFetcher.robotsCache.put("[ff01::114]", List.of()); postTool.recursive = 5; num = postTool.postWebPages(new String[] {"http://[ff01::114]/#removeme"}, 0, null); assertEquals(6, num); diff --git a/solr/core/src/test/org/apache/solr/cloud/CollectionPropsTest.java b/solr/core/src/test/org/apache/solr/cloud/CollectionPropsTest.java index 87f71cc05704..88e35bb3ef4e 100644 --- a/solr/core/src/test/org/apache/solr/cloud/CollectionPropsTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/CollectionPropsTest.java @@ -20,7 +20,6 @@ import java.io.IOException; import java.lang.invoke.MethodHandles; import java.nio.charset.StandardCharsets; -import java.util.Collections; import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -290,7 +289,7 @@ public void testMultipleWatchers() throws InterruptedException, IOException { private class Watcher implements CollectionPropsWatcher { private final String name; private final boolean forceReadPropsFromZk; - private volatile Map props = Collections.emptyMap(); + private volatile Map props = Map.of(); private final AtomicInteger triggered = new AtomicInteger(); public Watcher(final String name, final boolean forceReadPropsFromZk) { diff --git a/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java b/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java index c0d11b5c34f9..d0d10fda0297 100644 --- a/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java @@ -19,9 +19,9 @@ import java.lang.invoke.MethodHandles; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; @@ -877,7 +877,7 @@ private void checkShardConsistency(String collectionName, final SolrParams param } assertEquals( "inconsistency w/leader: shard=" + shardName + "core=" + replica.getCoreName(), - Collections.emptySet(), + Set.of(), CloudInspectUtil.showDiff( leaderResults, replicaResults, diff --git a/solr/core/src/test/org/apache/solr/cloud/MigrateReplicasTest.java b/solr/core/src/test/org/apache/solr/cloud/MigrateReplicasTest.java index 610ba8aa3140..09e81e6107d0 100644 --- a/solr/core/src/test/org/apache/solr/cloud/MigrateReplicasTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/MigrateReplicasTest.java @@ -261,7 +261,7 @@ public void testWithNoTarget() throws Exception { callMigrateReplicas( cloudClient, new MigrateReplicasRequestBody( - new HashSet<>(nodesToBeDecommissioned), Collections.emptySet(), true, null)); + new HashSet<>(nodesToBeDecommissioned), Set.of(), true, null)); assertEquals( "MigrateReplicas request was unsuccessful", 0L, @@ -305,8 +305,7 @@ public void testFailOnSingleNode() throws Exception { String liveNode = cloudClient.getClusterState().getLiveNodes().iterator().next(); Map response = callMigrateReplicas( - cloudClient, - new MigrateReplicasRequestBody(Set.of(liveNode), Collections.emptySet(), true, null)); + cloudClient, new MigrateReplicasRequestBody(Set.of(liveNode), Set.of(), true, null)); assertNotNull( "No error in response, when the request should have failed", response.get("error")); assertEquals( diff --git a/solr/core/src/test/org/apache/solr/cloud/NodeRolesTest.java b/solr/core/src/test/org/apache/solr/cloud/NodeRolesTest.java index 8d1a9858181f..c63805252163 100644 --- a/solr/core/src/test/org/apache/solr/cloud/NodeRolesTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/NodeRolesTest.java @@ -19,7 +19,7 @@ import java.io.IOException; import java.util.Collection; -import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.Objects; import org.apache.solr.client.solrj.SolrServerException; @@ -106,8 +106,7 @@ private void validateNodeRoles(String... nodenamePaths) throws SolrServerExcepti String path = nodenamePaths[i + 1]; assertTrue( "Didn't find " + nodename + " at " + path + ". Full response: " + rsp.jsonStr(), - ((Collection) Objects.requireNonNullElse(rsp._get(path), Collections.emptyList())) - .contains(nodename)); + ((Collection) Objects.requireNonNullElse(rsp._get(path), List.of())).contains(nodename)); } } @@ -120,8 +119,7 @@ private void testSupportedRolesAPI() throws Exception { .process(cluster.getSolrClient()); Map l = - (Map) - Objects.requireNonNullElse(rsp._get("supported-roles"), Collections.emptyMap()); + (Map) Objects.requireNonNullElse(rsp._get("supported-roles"), Map.of()); assertTrue(l.containsKey("data")); assertTrue(l.containsKey("overseer")); diff --git a/solr/core/src/test/org/apache/solr/cloud/OverseerCollectionConfigSetProcessorTest.java b/solr/core/src/test/org/apache/solr/cloud/OverseerCollectionConfigSetProcessorTest.java index a64c485a9c7c..9b5c8b302522 100644 --- a/solr/core/src/test/org/apache/solr/cloud/OverseerCollectionConfigSetProcessorTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/OverseerCollectionConfigSetProcessorTest.java @@ -351,7 +351,7 @@ protected Set commonMocks(int liveNodesCount, boolean distributedCluster Thread.sleep(1000); retries++; } - return Collections.emptyList(); + return List.of(); }); when(workQueueMock.getTailId()) diff --git a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java index c982e143c201..644d47f96a1c 100644 --- a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java @@ -1011,7 +1011,7 @@ public void testOverseerStatsReset() throws Exception { new UpdateShardHandler(UpdateShardHandlerConfig.DEFAULT); updateShardHandlers.add(updateShardHandler); HttpShardHandlerFactory httpShardHandlerFactory = new HttpShardHandlerFactory(); - httpShardHandlerFactory.init(new PluginInfo("shardHandlerFactory", Collections.emptyMap())); + httpShardHandlerFactory.init(new PluginInfo("shardHandlerFactory", Map.of())); httpShardHandlerFactorys.add(httpShardHandlerFactory); Overseer overseer = new Overseer( @@ -1724,7 +1724,7 @@ private SolrZkClient electNewOverseer(String address) new UpdateShardHandler(UpdateShardHandlerConfig.DEFAULT); updateShardHandlers.add(updateShardHandler); HttpShardHandlerFactory httpShardHandlerFactory = new HttpShardHandlerFactory(); - httpShardHandlerFactory.init(new PluginInfo("shardHandlerFactory", Collections.emptyMap())); + httpShardHandlerFactory.init(new PluginInfo("shardHandlerFactory", Map.of())); httpShardHandlerFactorys.add(httpShardHandlerFactory); // Set system property to ensure tests use Overseer mode diff --git a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java index c720012adfdf..a09737174ae0 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java @@ -40,7 +40,6 @@ import java.util.ArrayDeque; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.Deque; import java.util.HashSet; import java.util.LinkedHashMap; @@ -1728,7 +1727,7 @@ public boolean authenticate(String user, String pwd) { @Override public Map getPromptHeaders() { - return Collections.emptyMap(); + return Map.of(); } }; } diff --git a/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java b/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java index a45413f2b46f..615c925b1cc4 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java @@ -1416,7 +1416,7 @@ public Collection assertRTGResults( final SolrDocument actual, final String wt) { assertNull(fl, actual.getFirstValue(fieldName)); - return Collections.emptySet(); + return Set.of(); } } diff --git a/solr/core/src/test/org/apache/solr/cloud/TriLevelCompositeIdRoutingTest.java b/solr/core/src/test/org/apache/solr/cloud/TriLevelCompositeIdRoutingTest.java index 7e62974bd6f5..6318cf52f238 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TriLevelCompositeIdRoutingTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/TriLevelCompositeIdRoutingTest.java @@ -17,7 +17,6 @@ package org.apache.solr.cloud; import java.lang.invoke.MethodHandles; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -114,7 +113,7 @@ public void test() throws Exception { uniqueKeysOnDuplicateShards.retainAll(actualUniqueKeys); assertEquals( shardId + " contains some uniqueKeys that were already found on a previous shard", - Collections.emptySet(), + Set.of(), uniqueKeysOnDuplicateShards); actualUniqueKeys.addAll(uniqueKeysInShard); } diff --git a/solr/core/src/test/org/apache/solr/cloud/UnloadDistributedZkTest.java b/solr/core/src/test/org/apache/solr/cloud/UnloadDistributedZkTest.java index 7e66787a4a58..ce003c19fb72 100644 --- a/solr/core/src/test/org/apache/solr/cloud/UnloadDistributedZkTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/UnloadDistributedZkTest.java @@ -20,7 +20,7 @@ import java.lang.invoke.MethodHandles; import java.nio.file.Path; import java.util.Collection; -import java.util.Collections; +import java.util.List; import java.util.Random; import java.util.Set; import java.util.concurrent.SynchronousQueue; @@ -103,7 +103,7 @@ private void checkCoreNamePresenceAndSliceCount( 45, TimeUnit.SECONDS, c -> { - final Collection slices = (c != null) ? c.getSlices() : Collections.emptyList(); + final Collection slices = (c != null) ? c.getSlices() : List.of(); if (expectedSliceCount == slices.size()) { for (Slice slice : slices) { for (Replica replica : slice.getReplicas()) { diff --git a/solr/core/src/test/org/apache/solr/cloud/VMParamsZkACLAndCredentialsProvidersTest.java b/solr/core/src/test/org/apache/solr/cloud/VMParamsZkACLAndCredentialsProvidersTest.java index 81d36d45723d..41fb1dd80713 100644 --- a/solr/core/src/test/org/apache/solr/cloud/VMParamsZkACLAndCredentialsProvidersTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/VMParamsZkACLAndCredentialsProvidersTest.java @@ -27,7 +27,6 @@ import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Properties; import java.util.concurrent.TimeUnit; @@ -486,7 +485,7 @@ private String saveCredentialsFile(Properties props) throws IOException { public static class NoCredentialZkCredentialsInjector implements ZkCredentialsInjector { @Override public List getZkCredentials() { - return Collections.emptyList(); + return List.of(); } } @@ -529,7 +528,7 @@ class TestZkCredentialsInjector { private final List systemPropsValues; public TestZkCredentialsInjector(Class zkCredentialsInjectorClass) { - this(zkCredentialsInjectorClass, Collections.emptyList(), Collections.emptyList()); + this(zkCredentialsInjectorClass, List.of(), List.of()); } public TestZkCredentialsInjector( diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java b/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java index ebe2640bcb58..702c077a0668 100644 --- a/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java @@ -250,7 +250,7 @@ public List getCoreDescriptors() { new CoreDescriptor( collectionName, TEST_PATH(), - Collections.emptyMap(), + Map.of(), new Properties(), zkControllerRef.get()); // non-existent coreNodeName, this will cause zkController.publishAndWaitForDownStates @@ -784,7 +784,7 @@ private static class MockCoreContainer extends CoreContainer { public MockCoreContainer() { super(SolrXmlConfig.fromString(TEST_PATH(), "")); HttpShardHandlerFactory httpShardHandlerFactory = new HttpShardHandlerFactory(); - httpShardHandlerFactory.init(new PluginInfo("shardHandlerFactory", Collections.emptyMap())); + httpShardHandlerFactory.init(new PluginInfo("shardHandlerFactory", Map.of())); this.shardHandlerFactory = httpShardHandlerFactory; this.coreAdminHandler = new CoreAdminHandler(); this.metricManager = mock(SolrMetricManager.class); diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/SimpleCollectionCreateDeleteTest.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/SimpleCollectionCreateDeleteTest.java index 0b5d097d947e..6b09a449e90c 100644 --- a/solr/core/src/test/org/apache/solr/cloud/api/collections/SimpleCollectionCreateDeleteTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/SimpleCollectionCreateDeleteTest.java @@ -18,7 +18,6 @@ import java.time.Instant; import java.util.Collection; -import java.util.Collections; import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit; @@ -125,7 +124,7 @@ public void testPropertiesOfReplica() throws Exception { ClusterState.createFromCollectionMap( 0, (Map) Utils.fromJSON(node.data), - Collections.emptySet(), + Set.of(), Instant.EPOCH, () -> PerReplicaStatesOps.fetch( diff --git a/solr/core/src/test/org/apache/solr/cloud/overseer/TestClusterStateMutator.java b/solr/core/src/test/org/apache/solr/cloud/overseer/TestClusterStateMutator.java index 180905176365..96dd45b58b58 100644 --- a/solr/core/src/test/org/apache/solr/cloud/overseer/TestClusterStateMutator.java +++ b/solr/core/src/test/org/apache/solr/cloud/overseer/TestClusterStateMutator.java @@ -21,6 +21,7 @@ import java.util.Collections; import java.util.Map; +import java.util.Set; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.cloud.DistribStateManager; import org.apache.solr.client.solrj.cloud.SolrCloudManager; @@ -39,9 +40,7 @@ public static void beforeClass() { } public void testCreateCollection() { - ClusterState clusterState = - new ClusterState( - Collections.emptySet(), Collections.emptyMap()); + ClusterState clusterState = new ClusterState(Set.of(), Map.of()); DistribStateManager mockStateManager = mock(DistribStateManager.class); SolrCloudManager dataProvider = mock(SolrCloudManager.class); when(dataProvider.getDistribStateManager()).thenReturn(mockStateManager); @@ -57,9 +56,7 @@ public void testCreateCollection() { assertEquals("xyz", collection.getName()); assertEquals(1, collection.getSlicesMap().size()); - ClusterState state = - new ClusterState( - Collections.emptySet(), Collections.singletonMap("xyz", collection)); + ClusterState state = new ClusterState(Set.of(), Collections.singletonMap("xyz", collection)); message = new ZkNodeProps( Map.of( diff --git a/solr/core/src/test/org/apache/solr/cluster/placement/plugins/AffinityPlacementFactoryTest.java b/solr/core/src/test/org/apache/solr/cluster/placement/plugins/AffinityPlacementFactoryTest.java index eaa1b0a0976f..0dd6c451b171 100644 --- a/solr/core/src/test/org/apache/solr/cluster/placement/plugins/AffinityPlacementFactoryTest.java +++ b/solr/core/src/test/org/apache/solr/cluster/placement/plugins/AffinityPlacementFactoryTest.java @@ -779,7 +779,7 @@ public void testFreeDiskConstraintsWithNewReplicas() throws Exception { .map(Shard::getShardName) .findFirst() .map(Set::of) - .orElseGet(Collections::emptySet), + .orElseGet(Set::of), cluster.getLiveNodes(), ReplicaCount.of(0, 1, 1)); diff --git a/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java b/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java index 48ea5d3b44a0..78e8cae727f0 100644 --- a/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java +++ b/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java @@ -138,7 +138,7 @@ public void integrationTest() { } Map replicaMap = replicas.stream().collect(Collectors.toMap(Replica::getName, Function.identity())); - sliceMap.put(slice, new Slice(slice, replicaMap, Collections.emptyMap(), collection)); + sliceMap.put(slice, new Slice(slice, replicaMap, Map.of(), collection)); } @SuppressWarnings({"unchecked"}) DocCollection col = diff --git a/solr/core/src/test/org/apache/solr/core/TestConfLoadPerf.java b/solr/core/src/test/org/apache/solr/core/TestConfLoadPerf.java index c3f51417465c..589c7e49f7e3 100644 --- a/solr/core/src/test/org/apache/solr/core/TestConfLoadPerf.java +++ b/solr/core/src/test/org/apache/solr/core/TestConfLoadPerf.java @@ -25,7 +25,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.cloud.ZkSolrResourceLoader; @@ -55,10 +54,7 @@ public void testPerf() throws Exception { SolrResourceLoader srl = new SolrResourceLoader( - "temp", - Collections.emptyList(), - container.solrHome, - container.getResourceLoader().classLoader) { + "temp", List.of(), container.solrHome, container.getResourceLoader().classLoader) { // instance initializer block { diff --git a/solr/core/src/test/org/apache/solr/core/TestConfig.java b/solr/core/src/test/org/apache/solr/core/TestConfig.java index 94bd4c74a301..0ba42bb156d5 100644 --- a/solr/core/src/test/org/apache/solr/core/TestConfig.java +++ b/solr/core/src/test/org/apache/solr/core/TestConfig.java @@ -16,10 +16,9 @@ */ package org.apache.solr.core; -import java.io.IOException; import java.io.InputStream; -import java.util.Collections; import java.util.LinkedHashMap; +import java.util.Map; import org.apache.lucene.index.ConcurrentMergeScheduler; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.index.TieredMergePolicy; @@ -27,7 +26,6 @@ import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.schema.IndexSchema; import org.apache.solr.schema.IndexSchemaFactory; -import org.apache.solr.search.CacheConfig; import org.apache.solr.update.SolrIndexConfig; import org.junit.BeforeClass; import org.junit.Test; @@ -40,7 +38,7 @@ public static void beforeClass() throws Exception { } @Test - public void testLib() throws IOException { + public void testLib() { SolrResourceLoader loader = h.getCore().getResourceLoader(); InputStream data = null; String[] unexpectedFiles = new String[] {"empty-file-c2.txt", "empty-file-d2.txt"}; @@ -70,7 +68,7 @@ public void testCacheEnablingDisabling() throws Exception { assertNull(sc.documentCacheConfig); // assertNotNull(sc.userCacheConfigs); - assertEquals(Collections.emptyMap(), sc.userCacheConfigs); + assertEquals(Map.of(), sc.userCacheConfigs); // enable all the core caches (and one user cache) via system properties and verify System.setProperty("filterCache.enabled", "true"); diff --git a/solr/core/src/test/org/apache/solr/core/TestConfigOverlay.java b/solr/core/src/test/org/apache/solr/core/TestConfigOverlay.java index c12b6916e44e..75e701df31b7 100644 --- a/solr/core/src/test/org/apache/solr/core/TestConfigOverlay.java +++ b/solr/core/src/test/org/apache/solr/core/TestConfigOverlay.java @@ -18,7 +18,6 @@ import static org.apache.solr.core.ConfigOverlay.isEditableProp; -import java.util.Collections; import java.util.Map; import org.apache.solr.SolrTestCase; @@ -56,7 +55,7 @@ public void testPaths() { } public void testSetProperty() { - ConfigOverlay overlay = new ConfigOverlay(Collections.emptyMap(), 0); + ConfigOverlay overlay = new ConfigOverlay(Map.of(), 0); overlay = overlay.setProperty("query.filterCache.initialSize", 100); assertEquals(100, overlay.getXPathProperty("query/filterCache/@initialSize")); Map map = overlay.getEditableSubProperties("query/filterCache"); diff --git a/solr/core/src/test/org/apache/solr/core/TestConfigSetProperties.java b/solr/core/src/test/org/apache/solr/core/TestConfigSetProperties.java index e3aeea8a55a7..7d94bf096caa 100644 --- a/solr/core/src/test/org/apache/solr/core/TestConfigSetProperties.java +++ b/solr/core/src/test/org/apache/solr/core/TestConfigSetProperties.java @@ -20,7 +20,6 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.Map; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.common.SolrException; @@ -65,7 +64,7 @@ public void testConfigSetPropertiesNotMap() { @Test public void testEmptyMap() throws Exception { - NamedList list = createConfigSetProps(Utils.toJSONString(Collections.emptyMap())); + NamedList list = createConfigSetProps(Utils.toJSONString(Map.of())); assertEquals(0, list.size()); } diff --git a/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCoreSnapshots.java b/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCoreSnapshots.java index 9e0b3ad54975..431a43a2fb78 100644 --- a/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCoreSnapshots.java +++ b/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCoreSnapshots.java @@ -19,7 +19,6 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -336,7 +335,7 @@ private List listCommits(String directory) throws Exception { } catch (IndexNotFoundException ex) { // This can happen when the delete snapshot functionality cleans up the index files (when the // directory storing these files is not the *current* index directory). - return Collections.emptyList(); + return List.of(); } } } diff --git a/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java index 9387f71bdb17..b407a2bb128a 100644 --- a/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java @@ -19,6 +19,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenFilter; @@ -779,14 +780,14 @@ public void testCustomAttribute() { FieldType fieldType = new TextField(); Analyzer analyzer = new TokenizerChain( - new TokenizerFactory(Collections.emptyMap()) { + new TokenizerFactory(new HashMap()) { @Override public Tokenizer create(AttributeFactory factory) { return new CustomTokenizer(factory); } }, new TokenFilterFactory[] { - new TokenFilterFactory(Collections.emptyMap()) { + new TokenFilterFactory(new HashMap()) { @Override public TokenStream create(TokenStream input) { return new CustomTokenFilter(input); diff --git a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandlerDiskOverFlow.java b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandlerDiskOverFlow.java index f573f9ae11b9..d450325bc339 100644 --- a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandlerDiskOverFlow.java +++ b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandlerDiskOverFlow.java @@ -25,7 +25,6 @@ import java.io.StringWriter; import java.lang.invoke.MethodHandles; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.CyclicBarrier; @@ -213,10 +212,7 @@ public boolean getAsBoolean() { assertEquals("Replication command status", "OK", response._getStr("status")); - assertEquals( - "threads encountered failures (see logs for when)", - Collections.emptyList(), - threadFailures); + assertEquals("threads encountered failures (see logs for when)", List.of(), threadFailures); response = followerClient.query(new SolrQuery().setQuery("*:*").setRows(0)); assertEquals("docs in follower", docsInLeader, response.getResults().getNumFound()); diff --git a/solr/core/src/test/org/apache/solr/handler/V2ClusterAPIMappingTest.java b/solr/core/src/test/org/apache/solr/handler/V2ClusterAPIMappingTest.java index 6dce25d53474..b41640f15341 100644 --- a/solr/core/src/test/org/apache/solr/handler/V2ClusterAPIMappingTest.java +++ b/solr/core/src/test/org/apache/solr/handler/V2ClusterAPIMappingTest.java @@ -23,7 +23,6 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -143,7 +142,7 @@ private SolrParams doCaptureParams( new SolrQueryRequestBase(null, new ModifiableSolrParams()) { @Override public List getCommands(boolean validateInput) { - if (v2RequestBody == null) return Collections.emptyList(); + if (v2RequestBody == null) return List.of(); return ApiBag.getCommandOperations( new ContentStreamBase.StringStream(v2RequestBody), api.getCommandSchema(), true); } diff --git a/solr/core/src/test/org/apache/solr/handler/V2UpdateAPIMappingTest.java b/solr/core/src/test/org/apache/solr/handler/V2UpdateAPIMappingTest.java index c3cce079c777..24dadde25109 100644 --- a/solr/core/src/test/org/apache/solr/handler/V2UpdateAPIMappingTest.java +++ b/solr/core/src/test/org/apache/solr/handler/V2UpdateAPIMappingTest.java @@ -20,7 +20,6 @@ import static org.apache.solr.common.params.CommonParams.PATH; import static org.mockito.Mockito.mock; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -101,7 +100,7 @@ private SolrQueryRequestBase createTestRequest(Map pathTemplateV return new SolrQueryRequestBase(null, new ModifiableSolrParams()) { @Override public List getCommands(boolean validateInput) { - return Collections.emptyList(); + return List.of(); } @Override diff --git a/solr/core/src/test/org/apache/solr/handler/admin/TestApiFramework.java b/solr/core/src/test/org/apache/solr/handler/admin/TestApiFramework.java index 20286eca4090..69813bf75c90 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/TestApiFramework.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/TestApiFramework.java @@ -258,9 +258,7 @@ public Map getPathTemplateValues() { @Override protected Map getValidators() { - return currentApi[0] == null - ? Collections.emptyMap() - : currentApi[0].getCommandSchema(); + return currentApi[0] == null ? Map.of() : currentApi[0].getCommandSchema(); } @Override @@ -307,7 +305,7 @@ private SolrQueryResponse invoke( new SolrQueryRequestBase(null, SolrParams.of()) { @Override public List getCommands(boolean validateInput) { - return Collections.emptyList(); + return List.of(); } }; diff --git a/solr/core/src/test/org/apache/solr/handler/admin/TestCollectionAPIs.java b/solr/core/src/test/org/apache/solr/handler/admin/TestCollectionAPIs.java index 6ffdc55aa09f..eaa40be34e85 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/TestCollectionAPIs.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/TestCollectionAPIs.java @@ -25,7 +25,6 @@ import static org.apache.solr.common.util.Utils.fromJSONString; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -140,7 +139,7 @@ ZkNodeProps compareOutput( public Pair makeCall( final ApiBag apiBag, String path, final SolrRequest.METHOD method, final String payload) { - SolrParams queryParams = new MultiMapSolrParams(Collections.emptyMap()); + SolrParams queryParams = new MultiMapSolrParams(Map.of()); if (path.indexOf('?') > 0) { String queryStr = path.substring(path.indexOf('?') + 1); path = path.substring(0, path.indexOf('?')); @@ -154,7 +153,7 @@ public Pair makeCall( new SolrQueryRequestBase(null, queryParams) { @Override public List getCommands(boolean validateInput) { - if (payload == null) return Collections.emptyList(); + if (payload == null) return List.of(); return ApiBag.getCommandOperations( new ContentStreamBase.StringStream(payload), api.getCommandSchema(), true); } diff --git a/solr/core/src/test/org/apache/solr/handler/admin/V2ApiMappingTest.java b/solr/core/src/test/org/apache/solr/handler/admin/V2ApiMappingTest.java index 164e637990b4..7c256aae03e2 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/V2ApiMappingTest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/V2ApiMappingTest.java @@ -22,7 +22,6 @@ import static org.mockito.Mockito.verify; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -116,7 +115,7 @@ protected SolrQueryRequest captureConvertedV1Request( new SolrQueryRequestBase(null, new ModifiableSolrParams()) { @Override public List getCommands(boolean validateInput) { - if (v2RequestBody == null) return Collections.emptyList(); + if (v2RequestBody == null) return List.of(); return ApiBag.getCommandOperations( new ContentStreamBase.StringStream(v2RequestBody), api.getCommandSchema(), true); } diff --git a/solr/core/src/test/org/apache/solr/handler/admin/ZookeeperStatusHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/ZookeeperStatusHandlerTest.java index e69626ef5ff2..2324b4cce075 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/ZookeeperStatusHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/ZookeeperStatusHandlerTest.java @@ -181,7 +181,7 @@ public void validateNotWhitelisted() { @Test(expected = SolrException.class) public void validateEmptyResponse() { try (ZookeeperStatusHandler zsh = new ZookeeperStatusHandler(null)) { - zsh.validateZkRawResponse(Collections.emptyList(), "zoo1:2181", "mntr"); + zsh.validateZkRawResponse(List.of(), "zoo1:2181", "mntr"); } catch (IOException e) { fail("Error closing ZookeeperStatusHandler"); } diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/MigrateReplicasAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/MigrateReplicasAPITest.java index 0b9bbc04526d..574d671f5954 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/api/MigrateReplicasAPITest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/api/MigrateReplicasAPITest.java @@ -18,7 +18,6 @@ import static org.mockito.Mockito.when; -import java.util.Collections; import java.util.Set; import org.apache.solr.client.api.model.MigrateReplicasRequestBody; import org.apache.solr.common.SolrException; @@ -75,10 +74,9 @@ public void testNoTargetNodes() throws Exception { } @Test - public void testNoSourceNodesThrowsError() throws Exception { + public void testNoSourceNodesThrowsError() { MigrateReplicasRequestBody requestBody1 = - new MigrateReplicasRequestBody( - Collections.emptySet(), Set.of("demoTargetNode"), null, null); + new MigrateReplicasRequestBody(Set.of(), Set.of("demoTargetNode"), null, null); assertThrows(SolrException.class, () -> api.migrateReplicas(requestBody1)); MigrateReplicasRequestBody requestBody2 = new MigrateReplicasRequestBody(null, Set.of("demoTargetNode"), null, null); diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/V2NodeAPIMappingTest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/V2NodeAPIMappingTest.java index 1e7dc2c43e7b..18a09fc75686 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/api/V2NodeAPIMappingTest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/api/V2NodeAPIMappingTest.java @@ -23,7 +23,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import java.util.Collections; import java.util.HashMap; import java.util.List; import org.apache.solr.SolrTestCaseJ4; @@ -196,7 +195,7 @@ private SolrParams doCaptureParams( new SolrQueryRequestBase(null, solrParams) { @Override public List getCommands(boolean validateInput) { - if (v2RequestBody == null) return Collections.emptyList(); + if (v2RequestBody == null) return List.of(); return ApiBag.getCommandOperations( new ContentStreamBase.StringStream(v2RequestBody), api.getCommandSchema(), true); } diff --git a/solr/core/src/test/org/apache/solr/handler/component/ParallelHttpShardHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/component/ParallelHttpShardHandlerTest.java index f98aac8e3c38..ebdcbe658fb9 100644 --- a/solr/core/src/test/org/apache/solr/handler/component/ParallelHttpShardHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/handler/component/ParallelHttpShardHandlerTest.java @@ -40,7 +40,7 @@ public void shutdown() { @Override public List shutdownNow() { shutdown = true; - return Collections.emptyList(); + return List.of(); } @Override diff --git a/solr/core/src/test/org/apache/solr/handler/component/PhrasesIdentificationComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/PhrasesIdentificationComponentTest.java index b21810b20e90..6943af05e1c3 100644 --- a/solr/core/src/test/org/apache/solr/handler/component/PhrasesIdentificationComponentTest.java +++ b/solr/core/src/test/org/apache/solr/handler/component/PhrasesIdentificationComponentTest.java @@ -20,7 +20,6 @@ import static org.hamcrest.Matchers.lessThan; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.TreeMap; @@ -888,6 +887,6 @@ public void testGreyboxShardSearchRequests() { * unexpected stream elements */ public void assertEmptyStream(final String msg, final Stream stream) { - assertEquals(msg, Collections.emptyList(), stream.collect(Collectors.toList())); + assertEquals(msg, List.of(), stream.collect(Collectors.toList())); } } diff --git a/solr/core/src/test/org/apache/solr/handler/designer/ManagedSchemaDiffTest.java b/solr/core/src/test/org/apache/solr/handler/designer/ManagedSchemaDiffTest.java index 90897d7343ef..fa0ad697bb24 100644 --- a/solr/core/src/test/org/apache/solr/handler/designer/ManagedSchemaDiffTest.java +++ b/solr/core/src/test/org/apache/solr/handler/designer/ManagedSchemaDiffTest.java @@ -50,11 +50,11 @@ public void testFieldDiff() { ManagedIndexSchema schema = helper.loadLatestSchema(DEFAULT_CONFIGSET_NAME); Map schema1FieldMap = new HashMap<>(); - schema1FieldMap.put("strfield", schema.newField("strfield", "string", Collections.emptyMap())); + schema1FieldMap.put("strfield", schema.newField("strfield", "string", Map.of())); schema1FieldMap.put("boolfield", new SchemaField("boolfield", new BoolField())); Map schema2FieldMap = new HashMap<>(); - schema2FieldMap.put("strfield", schema.newField("strfield", "strings", Collections.emptyMap())); + schema2FieldMap.put("strfield", schema.newField("strfield", "strings", Map.of())); schema2FieldMap.put("intfield", new SchemaField("intfield", new IntPointField())); Map diff = diff --git a/solr/core/src/test/org/apache/solr/handler/designer/TestSchemaDesignerAPI.java b/solr/core/src/test/org/apache/solr/handler/designer/TestSchemaDesignerAPI.java index 0822693db8d7..59dac14425a9 100644 --- a/solr/core/src/test/org/apache/solr/handler/designer/TestSchemaDesignerAPI.java +++ b/solr/core/src/test/org/apache/solr/handler/designer/TestSchemaDesignerAPI.java @@ -164,7 +164,7 @@ public void testAddTechproductsProgressively() throws Exception { ENABLE_DYNAMIC_FIELDS_PARAM, true, ENABLE_FIELD_GUESSING_PARAM, true, ENABLE_NESTED_DOCS_PARAM, false, - LANGUAGES_PARAM, Collections.emptyList()); + LANGUAGES_PARAM, List.of()); assertDesignerSettings(expSettings, rsp.getValues()); SolrParams rspData = rsp.getValues().toSolrParams(); int schemaVersion = rspData.getInt(SCHEMA_VERSION_PARAM); @@ -348,7 +348,7 @@ public void testBasicUserWorkflow() throws Exception { ENABLE_DYNAMIC_FIELDS_PARAM, true, ENABLE_FIELD_GUESSING_PARAM, true, ENABLE_NESTED_DOCS_PARAM, false, - LANGUAGES_PARAM, Collections.emptyList(), + LANGUAGES_PARAM, List.of(), COPY_FROM_PARAM, "_default"); assertDesignerSettings(expSettings, rsp.getValues()); @@ -516,7 +516,7 @@ public void testBasicUserWorkflow() throws Exception { ENABLE_DYNAMIC_FIELDS_PARAM, false, ENABLE_FIELD_GUESSING_PARAM, false, ENABLE_NESTED_DOCS_PARAM, false, - LANGUAGES_PARAM, Collections.emptyList(), + LANGUAGES_PARAM, List.of(), COPY_FROM_PARAM, "_default"); assertDesignerSettings(expSettings, rsp.getValues()); diff --git a/solr/core/src/test/org/apache/solr/handler/designer/TestSchemaDesignerConfigSetHelper.java b/solr/core/src/test/org/apache/solr/handler/designer/TestSchemaDesignerConfigSetHelper.java index d2ed61fc037a..4552a8a65bc8 100644 --- a/solr/core/src/test/org/apache/solr/handler/designer/TestSchemaDesignerConfigSetHelper.java +++ b/solr/core/src/test/org/apache/solr/handler/designer/TestSchemaDesignerConfigSetHelper.java @@ -110,7 +110,7 @@ public void testSetupMutable() throws Exception { schema = helper.syncLanguageSpecificObjectsAndFiles( - configSet, schema, Collections.emptyList(), true, DEFAULT_CONFIGSET_NAME); + configSet, schema, List.of(), true, DEFAULT_CONFIGSET_NAME); assertEquals(2, schema.getSchemaZkVersion()); byte[] zipped = helper.downloadAndZipConfigSet(mutableId); @@ -207,7 +207,7 @@ public void testEnableDisableOptions() throws Exception { schema = helper.syncLanguageSpecificObjectsAndFiles( - configSet, schema, Collections.emptyList(), true, DEFAULT_CONFIGSET_NAME); + configSet, schema, List.of(), true, DEFAULT_CONFIGSET_NAME); assertNotNull(schema.getFieldTypeByName("text_en")); assertNotNull(schema.getFieldOrNull("*_txt_en")); assertNotNull(schema.getFieldTypeByName("text_fr")); @@ -217,7 +217,7 @@ public void testEnableDisableOptions() throws Exception { schema = helper.syncLanguageSpecificObjectsAndFiles( - configSet, schema, Collections.emptyList(), false, DEFAULT_CONFIGSET_NAME); + configSet, schema, List.of(), false, DEFAULT_CONFIGSET_NAME); assertNotNull(schema.getFieldTypeByName("text_en")); assertNull(schema.getFieldOrNull("*_txt_en")); assertNotNull(schema.getFieldTypeByName("text_fr")); diff --git a/solr/core/src/test/org/apache/solr/handler/designer/TestSchemaDesignerSettingsDAO.java b/solr/core/src/test/org/apache/solr/handler/designer/TestSchemaDesignerSettingsDAO.java index e0cc7eea106c..3b1989c06a0e 100644 --- a/solr/core/src/test/org/apache/solr/handler/designer/TestSchemaDesignerSettingsDAO.java +++ b/solr/core/src/test/org/apache/solr/handler/designer/TestSchemaDesignerSettingsDAO.java @@ -20,6 +20,7 @@ import static org.apache.solr.handler.admin.ConfigSetsHandler.DEFAULT_CONFIGSET_NAME; import java.util.Collections; +import java.util.List; import java.util.Map; import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.client.solrj.request.CollectionAdminRequest; @@ -84,7 +85,7 @@ public void testDAO() throws Exception { DESIGNER_KEY + ENABLE_NESTED_DOCS_PARAM, false, DESIGNER_KEY + LANGUAGES_PARAM, - Collections.emptyList()); + List.of()); assertDesignerSettings(expSettings, settings); settings.setDisabled(false); @@ -109,7 +110,7 @@ public void testDAO() throws Exception { DESIGNER_KEY + ENABLE_NESTED_DOCS_PARAM, false, DESIGNER_KEY + LANGUAGES_PARAM, - Collections.emptyList()); + List.of()); assertDesignerSettings(expSettings, settings); assertFalse("should not be disabled", dao.isDesignerDisabled(configSet)); diff --git a/solr/core/src/test/org/apache/solr/legacy/TestLegacyNumericUtils.java b/solr/core/src/test/org/apache/solr/legacy/TestLegacyNumericUtils.java index 7b7cfd74dc3e..8a1aea5bc765 100644 --- a/solr/core/src/test/org/apache/solr/legacy/TestLegacyNumericUtils.java +++ b/solr/core/src/test/org/apache/solr/legacy/TestLegacyNumericUtils.java @@ -17,7 +17,6 @@ package org.apache.solr.legacy; import java.util.Arrays; -import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Random; @@ -599,8 +598,7 @@ public void testSplitLongRange() { Long.MIN_VALUE, Long.MAX_VALUE, 1, false, Arrays.asList(0x0L, 0x1L), Arrays.asList(63)); // the inverse range should produce no sub-ranges - assertLongRangeSplit( - 9500L, -5000L, 4, false, Collections.emptyList(), Collections.emptyList()); + assertLongRangeSplit(9500L, -5000L, 4, false, List.of(), List.of()); // a 0-length range should reproduce the range itself assertLongRangeSplit( @@ -717,8 +715,7 @@ public void testSplitIntRange() { Integer.MIN_VALUE, Integer.MAX_VALUE, 1, false, Arrays.asList(0x0, 0x1), Arrays.asList(31)); // the inverse range should produce no sub-ranges - assertIntRangeSplit( - 9500, -5000, 4, false, Collections.emptyList(), Collections.emptyList()); + assertIntRangeSplit(9500, -5000, 4, false, List.of(), List.of()); // a 0-length range should reproduce the range itself assertIntRangeSplit( diff --git a/solr/core/src/test/org/apache/solr/packagemanager/TestPackageManager.java b/solr/core/src/test/org/apache/solr/packagemanager/TestPackageManager.java index 58089790229d..69f590136aed 100644 --- a/solr/core/src/test/org/apache/solr/packagemanager/TestPackageManager.java +++ b/solr/core/src/test/org/apache/solr/packagemanager/TestPackageManager.java @@ -69,7 +69,7 @@ public void testWrongVerificationJPathIsThrown() throws IOException { "1.0", new SolrPackage.Manifest(), Collections.singletonList(plugin), - Collections.emptyMap()), + Map.of()), Collections.singletonList(COLLECTION_NAME), plugin.type.equals("cluster"), new String[0]); @@ -91,7 +91,7 @@ public StubPackageManager(ToolRuntime runtime, SolrClient solrClient, SolrZkClie @Override Map getPackageParams(String packageName, String collection) { - return Collections.emptyMap(); + return Map.of(); } } } diff --git a/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java b/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java index 5de81116cb2e..9f4136732361 100644 --- a/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java +++ b/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java @@ -479,7 +479,7 @@ IndexSchema addFields(IndexSchema schema) { storedMvFields.add(field); } } - return schema.addFields(fieldsToAdd, Collections.emptyMap(), false); + return schema.addFields(fieldsToAdd, Map.of(), false); } RetrieveField getTestField(String field) { diff --git a/solr/core/src/test/org/apache/solr/schema/DateFieldTest.java b/solr/core/src/test/org/apache/solr/schema/DateFieldTest.java index fb50c88578f2..382fc700058f 100644 --- a/solr/core/src/test/org/apache/solr/schema/DateFieldTest.java +++ b/solr/core/src/test/org/apache/solr/schema/DateFieldTest.java @@ -17,8 +17,8 @@ package org.apache.solr.schema; import java.nio.file.Path; -import java.util.Collections; import java.util.Date; +import java.util.HashMap; import org.apache.lucene.index.IndexableField; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.common.util.ByteArrayUtf8CharSequence; @@ -37,7 +37,7 @@ public void setUp() throws Exception { IndexSchema schema = IndexSchemaFactory.buildIndexSchema(testConfHome.resolve("schema.xml").toString(), config); f = Boolean.getBoolean(NUMERIC_POINTS_SYSPROP) ? new DatePointField() : new TrieDateField(); - f.init(schema, Collections.emptyMap()); + f.init(schema, new HashMap()); } // NOTE: Many other tests were moved to DateMathParserTest diff --git a/solr/core/src/test/org/apache/solr/schema/TestManagedSchema.java b/solr/core/src/test/org/apache/solr/schema/TestManagedSchema.java index 4351b453dbb1..e60f6d23da90 100644 --- a/solr/core/src/test/org/apache/solr/schema/TestManagedSchema.java +++ b/solr/core/src/test/org/apache/solr/schema/TestManagedSchema.java @@ -23,7 +23,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; -import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.regex.Pattern; @@ -182,7 +181,7 @@ public void testAddFieldWhenNotMutable() throws Exception { IndexSchema oldSchema = h.getCore().getLatestSchema(); String fieldName = "new_field"; String fieldType = "string"; - Map options = Collections.emptyMap(); + Map options = Map.of(); SchemaField newField = oldSchema.newField(fieldName, fieldType, options); IndexSchema newSchema = oldSchema.addField(newField); h.getCore().setLatestSchema(newSchema); diff --git a/solr/core/src/test/org/apache/solr/schema/TestPointFields.java b/solr/core/src/test/org/apache/solr/schema/TestPointFields.java index cbee971c7cca..4c7010bb0c1b 100644 --- a/solr/core/src/test/org/apache/solr/schema/TestPointFields.java +++ b/solr/core/src/test/org/apache/solr/schema/TestPointFields.java @@ -261,7 +261,7 @@ public void testIntPointFieldSortAndFunction() throws Exception { field, "multivalued", toStringArray(getRandomInts(numValues, false))); } - assertEquals("Missing types in the test", Collections.emptySet(), regexToTest); + assertEquals("Missing types in the test", Set.of(), regexToTest); } @Test @@ -880,7 +880,7 @@ public void testDoublePointFieldSortAndFunction() throws Exception { doTestPointFieldFunctionQueryError(field, "multivalued", "42.34"); doTestPointFieldFunctionQueryError(field, "multivalued", "42.34", "66.6"); } - assertEquals("Missing types in the test", Collections.emptySet(), regexToTest); + assertEquals("Missing types in the test", Set.of(), regexToTest); } @Test @@ -1496,7 +1496,7 @@ public void testFloatPointFieldSortAndFunction() throws Exception { doTestPointFieldFunctionQueryError(field, "multivalued", "42.34"); doTestPointFieldFunctionQueryError(field, "multivalued", "42.34", "66.6"); } - assertEquals("Missing types in the test", Collections.emptySet(), regexToTest); + assertEquals("Missing types in the test", Set.of(), regexToTest); } @Test @@ -2077,7 +2077,7 @@ public void testLongPointFieldSortAndFunction() throws Exception { doTestPointFieldFunctionQueryError( field, "multivalued", toStringArray(getRandomLongs(numValues, false))); } - assertEquals("Missing types in the test", Collections.emptySet(), regexToTest); + assertEquals("Missing types in the test", Set.of(), regexToTest); } @Test @@ -2636,7 +2636,7 @@ public void testDatePointFieldSortAndFunction() throws Exception { doTestPointFieldFunctionQueryError( field, "multivalued", "1995-12-31T23:59:59Z", "2000-12-31T23:59:59Z"); } - assertEquals("Missing types in the test", Collections.emptySet(), regexToTest); + assertEquals("Missing types in the test", Set.of(), regexToTest); } @Test diff --git a/solr/core/src/test/org/apache/solr/search/LargeFieldTest.java b/solr/core/src/test/org/apache/solr/search/LargeFieldTest.java index 9c14cb2bf465..6d0a6a385be7 100644 --- a/solr/core/src/test/org/apache/solr/search/LargeFieldTest.java +++ b/solr/core/src/test/org/apache/solr/search/LargeFieldTest.java @@ -20,6 +20,7 @@ import java.io.StringWriter; import java.util.Arrays; import java.util.Collections; +import java.util.Map; import java.util.Objects; import org.apache.lucene.document.Document; import org.apache.lucene.index.IndexableField; @@ -70,7 +71,7 @@ public static void initManagedSchemaCore() throws Exception { Arrays.asList( schema.newField(LAZY_FIELD, "textType", map()), schema.newField(BIG_FIELD, "textType", map("large", true))), - Collections.emptyMap(), + Map.of(), PERSIST_FALSE); h.getCore().setLatestSchema(schema); diff --git a/solr/core/src/test/org/apache/solr/search/SignificantTermsQParserPluginTest.java b/solr/core/src/test/org/apache/solr/search/SignificantTermsQParserPluginTest.java index b3d70a8d1bd8..49203334367a 100644 --- a/solr/core/src/test/org/apache/solr/search/SignificantTermsQParserPluginTest.java +++ b/solr/core/src/test/org/apache/solr/search/SignificantTermsQParserPluginTest.java @@ -20,9 +20,9 @@ import java.io.IOException; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import org.apache.commons.io.file.PathUtils; import org.apache.solr.SolrTestCaseJ4; @@ -76,8 +76,7 @@ public void testEmptyCollectionDoesNotThrow() throws Exception { RefCounted searcher = emptyCore.getSearcher(); try { DelegatingCollector analyticsCollector = - query.getAnalyticsCollector( - new ResponseBuilder(null, resp, Collections.emptyList()), searcher.get()); + query.getAnalyticsCollector(new ResponseBuilder(null, resp, List.of()), searcher.get()); assertNotNull(analyticsCollector); analyticsCollector.complete(); LinkedHashMap expectedValues = new LinkedHashMap<>(); @@ -106,7 +105,7 @@ public void testCollectionWithDocuments() throws Exception { AnalyticsQuery query = (AnalyticsQuery) parser.parse(); SolrQueryResponse resp = new SolrQueryResponse(); - ResponseBuilder responseBuilder = new ResponseBuilder(null, resp, Collections.emptyList()); + ResponseBuilder responseBuilder = new ResponseBuilder(null, resp, List.of()); RefCounted searcher = dataCore.getSearcher(); try { diff --git a/solr/core/src/test/org/apache/solr/search/TestAddFieldRealTimeGet.java b/solr/core/src/test/org/apache/solr/search/TestAddFieldRealTimeGet.java index f7ac2b40616f..91447cf037d9 100644 --- a/solr/core/src/test/org/apache/solr/search/TestAddFieldRealTimeGet.java +++ b/solr/core/src/test/org/apache/solr/search/TestAddFieldRealTimeGet.java @@ -18,7 +18,7 @@ import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; +import java.util.Map; import org.apache.commons.io.file.PathUtils; import org.apache.lucene.tests.mockfile.FilterPath; import org.apache.solr.schema.IndexSchema; @@ -65,7 +65,7 @@ public void test() throws Exception { unIgnoreException("unknown field"); IndexSchema schema = h.getCore().getLatestSchema(); - SchemaField newField = schema.newField(newFieldName, newFieldType, Collections.emptyMap()); + SchemaField newField = schema.newField(newFieldName, newFieldType, Map.of()); IndexSchema newSchema = schema.addField(newField); h.getCore().setLatestSchema(newSchema); diff --git a/solr/core/src/test/org/apache/solr/search/TestFiltersQueryCaching.java b/solr/core/src/test/org/apache/solr/search/TestFiltersQueryCaching.java index e2f47693ec43..eb6811ea324b 100644 --- a/solr/core/src/test/org/apache/solr/search/TestFiltersQueryCaching.java +++ b/solr/core/src/test/org/apache/solr/search/TestFiltersQueryCaching.java @@ -20,7 +20,6 @@ import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.concurrent.Future; import org.apache.solr.SolrTestCaseJ4; @@ -203,7 +202,7 @@ public void testRecursiveFilter() throws Exception { @Test public void testAbsentParams() throws Exception { // no `fqs` at all - doTestAbsentParams(Collections.emptyList(), NUM_DOCS); + doTestAbsentParams(List.of(), NUM_DOCS); // simple term query `fqs` doTestAbsentParams(List.of("fqs", "{!term f=field_s v='d0'}"), 1); // empty `fqs` diff --git a/solr/core/src/test/org/apache/solr/search/TestSearcherReuse.java b/solr/core/src/test/org/apache/solr/search/TestSearcherReuse.java index 0f722037241b..11168e816d6f 100644 --- a/solr/core/src/test/org/apache/solr/search/TestSearcherReuse.java +++ b/solr/core/src/test/org/apache/solr/search/TestSearcherReuse.java @@ -18,7 +18,7 @@ import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; +import java.util.Map; import org.apache.commons.io.file.PathUtils; import org.apache.lucene.tests.mockfile.FilterPath; import org.apache.solr.SolrTestCaseJ4; @@ -176,8 +176,7 @@ public void test() { // create a new field & add it. assertTrue("schema not mutable", beforeReq.getSchema().isMutable()); ManagedIndexSchema oldSchema = (ManagedIndexSchema) beforeReq.getSchema(); - SchemaField newField = - oldSchema.newField("hoss", "string", Collections.emptyMap()); + SchemaField newField = oldSchema.newField("hoss", "string", Map.of()); IndexSchema newSchema = oldSchema.addField(newField); h.getCore().setLatestSchema(newSchema); diff --git a/solr/core/src/test/org/apache/solr/search/TestSolrQueryParser.java b/solr/core/src/test/org/apache/solr/search/TestSolrQueryParser.java index 6dcf66563e7d..6c9cd362e416 100644 --- a/solr/core/src/test/org/apache/solr/search/TestSolrQueryParser.java +++ b/solr/core/src/test/org/apache/solr/search/TestSolrQueryParser.java @@ -26,7 +26,6 @@ import io.prometheus.metrics.model.snapshots.CounterSnapshot; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -340,7 +339,7 @@ public void testAutoTerms() throws Exception { sowTrueParamsMap.put("sow", "true"); List paramMaps = Arrays.asList( - new MapSolrParams(Collections.emptyMap()), // no sow param (i.e. the default sow value) + new MapSolrParams(Map.of()), // no sow param (i.e. the default sow value) new MapSolrParams(sowFalseParamsMap), new MapSolrParams(sowTrueParamsMap)); diff --git a/solr/core/src/test/org/apache/solr/search/ThinCache.java b/solr/core/src/test/org/apache/solr/search/ThinCache.java index c8123a899edf..06f58eacf399 100644 --- a/solr/core/src/test/org/apache/solr/search/ThinCache.java +++ b/solr/core/src/test/org/apache/solr/search/ThinCache.java @@ -25,7 +25,6 @@ import java.lang.invoke.MethodHandles; import java.lang.ref.WeakReference; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.Map; @@ -234,7 +233,7 @@ public void warm(SolrIndexSearcher searcher, SolrCache old) { @SuppressWarnings("unchecked") ThinCache other = (ThinCache) old; long warmingStartTimeNanos = System.nanoTime(); - List> orderedEntries = Collections.emptyList(); + List> orderedEntries = List.of(); // warm entries if (isAutowarmingOn()) { orderedEntries = new ArrayList<>(other.local.size() << 1); // oversize diff --git a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java index 0644631e7cb7..93e7f07bf4c8 100644 --- a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java +++ b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java @@ -21,7 +21,6 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -636,7 +635,7 @@ private void assertFacetCountsAreCorrect( ((Number) facetResponse.get("count")).longValue()); if (0 == rsp.getResults().getNumFound()) { // when the query matches nothing, we should expect no top level facets - expected = Collections.emptyMap(); + expected = Map.of(); } assertFacetCountsAreCorrect(maxBucketsToCheck, expected, baseParams, facetResponse); } catch (AssertionError e) { diff --git a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java index f1046806863f..c6e9dfa0094a 100644 --- a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java +++ b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java @@ -24,7 +24,6 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; @@ -442,7 +441,7 @@ private void assertFacetSKGsAreCorrect( // 'skg' key must not exist in th allBuckets bucket assertEquals( facetKey + " has skg in allBuckets: " + results.get("allBuckets"), - Collections.emptyList(), + List.of(), ((NamedList) results.get("allBuckets")).getAll("skg")); } final List> buckets = (List>) results.get("buckets"); diff --git a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java index 2ce2bd105633..b295fd4c9a3c 100644 --- a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java +++ b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java @@ -363,8 +363,8 @@ public void testWhiteboxSanitySweepDebug() { (NamedList) debug.get(SWEEP_COLLECTION_DEBUG_KEY); assertNotNull(sweep_debug); assertEquals("count", sweep_debug.get("base")); - assertEquals(Collections.emptyList(), sweep_debug.get("accs")); - assertEquals(Collections.emptyList(), sweep_debug.get("mapped")); + assertEquals(List.of(), sweep_debug.get("accs")); + assertEquals(List.of(), sweep_debug.get("mapped")); } { // if we override 'dv' with 'hashdv' which doesn't sweep, our sweep debug should be empty, // even if the skg stat does ask for sweeping explicitly... @@ -419,8 +419,8 @@ public void testWhiteboxSanitySweepDebug() { (NamedList) debug.get(SWEEP_COLLECTION_DEBUG_KEY); assertNotNull(sweep_debug); assertEquals("count", sweep_debug.get("base")); - assertEquals(Collections.emptyList(), sweep_debug.get("accs")); - assertEquals(Collections.emptyList(), sweep_debug.get("mapped")); + assertEquals(List.of(), sweep_debug.get("accs")); + assertEquals(List.of(), sweep_debug.get("mapped")); } } @@ -921,12 +921,12 @@ private static final class RelatednessFacet implements Facet, Writable { /** Assumes null for fore/back queries w/no options */ public RelatednessFacet() { - this(null, null, Collections.emptyMap()); + this(null, null, Map.of()); } /** Assumes no options */ public RelatednessFacet(final String foreQ, final String backQ) { - this(foreQ, backQ, Collections.emptyMap()); + this(foreQ, backQ, Map.of()); } public RelatednessFacet( diff --git a/solr/core/src/test/org/apache/solr/search/join/ShardToShardJoinAbstract.java b/solr/core/src/test/org/apache/solr/search/join/ShardToShardJoinAbstract.java index 5790027afcf7..099d070bc61f 100644 --- a/solr/core/src/test/org/apache/solr/search/join/ShardToShardJoinAbstract.java +++ b/solr/core/src/test/org/apache/solr/search/join/ShardToShardJoinAbstract.java @@ -80,9 +80,7 @@ public static void setupCluster( PluginMeta plugin = new PluginMeta(); plugin.name = PlacementPluginFactory.PLUGIN_NAME; plugin.klass = StubShardAffinityPlacementFactory.class.getName(); - plugin.config = - new AffinityPlacementConfig( - 1, 2, Collections.emptyMap(), Map.of(toColl, fromColl), Map.of()); + plugin.config = new AffinityPlacementConfig(1, 2, Map.of(), Map.of(toColl, fromColl), Map.of()); V2Request req = new V2Request.Builder("/cluster/plugin") diff --git a/solr/core/src/test/org/apache/solr/security/AllowListUrlCheckerTest.java b/solr/core/src/test/org/apache/solr/security/AllowListUrlCheckerTest.java index 0a4f57ba5af6..4123d4a7c492 100644 --- a/solr/core/src/test/org/apache/solr/security/AllowListUrlCheckerTest.java +++ b/solr/core/src/test/org/apache/solr/security/AllowListUrlCheckerTest.java @@ -23,7 +23,6 @@ import java.net.MalformedURLException; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -50,8 +49,7 @@ public void testAllowAll() throws Exception { @Test public void testNoInput() throws Exception { - assertThat( - new AllowListUrlChecker(Collections.emptyList()).getHostAllowList().isEmpty(), is(true)); + assertThat(new AllowListUrlChecker(List.of()).getHostAllowList().isEmpty(), is(true)); } @Test @@ -146,7 +144,7 @@ public void testCoreSpecific() throws Exception { @Test public void testHostParsingUnsetEmpty() throws Exception { - assertThat(AllowListUrlChecker.parseHostPorts(Collections.emptyList()).isEmpty(), is(true)); + assertThat(AllowListUrlChecker.parseHostPorts(List.of()).isEmpty(), is(true)); } @Test diff --git a/solr/core/src/test/org/apache/solr/security/BaseTestRuleBasedAuthorizationPlugin.java b/solr/core/src/test/org/apache/solr/security/BaseTestRuleBasedAuthorizationPlugin.java index c861dc2458c4..ae58ff1d67ab 100644 --- a/solr/core/src/test/org/apache/solr/security/BaseTestRuleBasedAuthorizationPlugin.java +++ b/solr/core/src/test/org/apache/solr/security/BaseTestRuleBasedAuthorizationPlugin.java @@ -16,8 +16,6 @@ */ package org.apache.solr.security; -import static java.util.Collections.emptyMap; -import static java.util.Collections.emptySet; import static java.util.Collections.singletonList; import static java.util.Collections.singletonMap; import static org.apache.solr.common.util.CommandOperation.captureErrors; @@ -575,7 +573,7 @@ public void testAllPermissionAllowsActionsWhenUserHasCorrectRole() { "handler", handler, "params", - new MapSolrParams(emptyMap())), + new MapSolrParams(Map.of())), STATUS_OK); } @@ -622,7 +620,7 @@ public void testAllPermissionAllowsActionsWhenAssociatedRoleIsWildcard() { "handler", handler, "params", - new MapSolrParams(emptyMap())), + new MapSolrParams(Map.of())), STATUS_OK); } @@ -669,7 +667,7 @@ public void testAllPermissionDeniesActionsWhenUserIsNotCorrectRole() { "handler", handler, "params", - new MapSolrParams(emptyMap())), + new MapSolrParams(Map.of())), FORBIDDEN); } @@ -681,14 +679,14 @@ public void testGetPermissionNamesForRoles() { plugin.init(rules); assertEquals( Set.of("mycoll_update", "read"), plugin.getPermissionNamesForRoles(Set.of("dev"))); - assertEquals(emptySet(), plugin.getPermissionNamesForRoles(Set.of("user"))); + assertEquals(Set.of(), plugin.getPermissionNamesForRoles(Set.of("user"))); assertEquals( Set.of("schema-edit", "collection-admin-edit", "mycoll_update"), plugin.getPermissionNamesForRoles(Set.of("admin"))); assertEquals( Set.of("schema-edit", "collection-admin-edit", "mycoll_update", "read"), plugin.getPermissionNamesForRoles(Set.of("admin", "dev"))); - assertEquals(emptySet(), plugin.getPermissionNamesForRoles(null)); + assertEquals(Set.of(), plugin.getPermissionNamesForRoles(null)); assertEquals( Set.of("collection-admin-read"), plugin.getPermissionNamesForRoles(Collections.singletonList(null))); diff --git a/solr/core/src/test/org/apache/solr/security/CertAuthPluginTest.java b/solr/core/src/test/org/apache/solr/security/CertAuthPluginTest.java index a0574c1327f9..f8dd4927bf3c 100644 --- a/solr/core/src/test/org/apache/solr/security/CertAuthPluginTest.java +++ b/solr/core/src/test/org/apache/solr/security/CertAuthPluginTest.java @@ -30,7 +30,7 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.security.cert.X509Certificate; -import java.util.Collections; +import java.util.Map; import javax.security.auth.x500.X500Principal; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.core.CoreContainer; @@ -62,7 +62,7 @@ public void setUp() throws Exception { SolrMetricsContext solrMetricsContext = new SolrMetricsContext(coreContainer.getMetricManager(), registryName); plugin.initializeMetrics(solrMetricsContext, Attributes.empty()); - plugin.init(Collections.emptyMap()); + plugin.init(Map.of()); } @Override diff --git a/solr/core/src/test/org/apache/solr/security/PathBasedCertPrincipalResolverTest.java b/solr/core/src/test/org/apache/solr/security/PathBasedCertPrincipalResolverTest.java index 1911ff66d6ba..9405c0f4f034 100644 --- a/solr/core/src/test/org/apache/solr/security/PathBasedCertPrincipalResolverTest.java +++ b/solr/core/src/test/org/apache/solr/security/PathBasedCertPrincipalResolverTest.java @@ -23,7 +23,6 @@ import java.security.Principal; import java.security.cert.CertificateParsingException; import java.security.cert.X509Certificate; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -227,7 +226,7 @@ public void testSan() { List.of(SANType.EMAIL.getValue(), "user1@example.com"), List.of(SANType.EMAIL.getValue(), "user2@example.com")), "san.email", - Collections.emptyList(), + List.of(), "*", "user1@example.com"); } @@ -322,9 +321,9 @@ private void testCertificateCases(List> sanData, String path, String exp sanData, null, path, - Collections.emptyList(), + List.of(), CertResolverPattern.CheckType.WILDCARD.toString(), - Collections.emptyMap(), + Map.of(), expectedValue); } @@ -336,7 +335,7 @@ private void testCertificateCases( String expectedValue) { testCertificateCases( - sanData, null, path, filterValues, filterCheckType, Collections.emptyMap(), expectedValue); + sanData, null, path, filterValues, filterCheckType, Map.of(), expectedValue); } private void testCertificateCases(String dn, String path, String expectedValue) { @@ -345,9 +344,9 @@ private void testCertificateCases(String dn, String path, String expectedValue) null, dn, path, - Collections.emptyList(), + List.of(), CertResolverPattern.CheckType.WILDCARD.toString(), - Collections.emptyMap(), + Map.of(), expectedValue); } diff --git a/solr/core/src/test/org/apache/solr/update/DeleteByIdWithRouterFieldTest.java b/solr/core/src/test/org/apache/solr/update/DeleteByIdWithRouterFieldTest.java index c014c842ef71..a36b7b02cd6d 100644 --- a/solr/core/src/test/org/apache/solr/update/DeleteByIdWithRouterFieldTest.java +++ b/solr/core/src/test/org/apache/solr/update/DeleteByIdWithRouterFieldTest.java @@ -22,6 +22,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import org.apache.lucene.tests.util.TestUtil; import org.apache.lucene.util.IOUtils; @@ -123,7 +124,7 @@ private void checkShardsConsistentNumFound() throws Exception { final SolrDocumentList replicaResults = replicaClient.query(params).getResults(); assertEquals( "inconsistency w/leader: shard=" + shardName + "core=" + replica.getCoreName(), - Collections.emptySet(), + Set.of(), CloudInspectUtil.showDiff( leaderResults, replicaResults, diff --git a/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java b/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java index aa7d02d6c1c7..0b7a3f3c2a0a 100644 --- a/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java +++ b/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java @@ -456,7 +456,7 @@ private static void handleVersionsWithRangesTests() { private static void testHandleVersionsWithRangesNoOther() { // no other, solitary us for (boolean completeList : new boolean[] {false, true}) { - List otherVersions = Collections.emptyList(); + List otherVersions = List.of(); List ourUpdates = Collections.singletonList(42L); assertEquals(1, ourUpdates.size()); long ourLowThreshold = ourUpdates.get(0); diff --git a/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesDistrib.java b/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesDistrib.java index ef169bba2822..8576af702088 100644 --- a/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesDistrib.java +++ b/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesDistrib.java @@ -572,7 +572,7 @@ private void updatingDVsInAVeryOldSegment() throws Exception { // create 10 more segments for (int i = 0; i < 10; i++) { - buildRandomIndex(101.0F, Collections.emptyList()); + buildRandomIndex(101.0F, List.of()); } index("id", id, "inplace_updatable_float", map("inc", "1")); diff --git a/solr/core/src/test/org/apache/solr/update/TestNestedUpdateProcessor.java b/solr/core/src/test/org/apache/solr/update/TestNestedUpdateProcessor.java index c91cdf272578..98c847ec12ea 100644 --- a/solr/core/src/test/org/apache/solr/update/TestNestedUpdateProcessor.java +++ b/solr/core/src/test/org/apache/solr/update/TestNestedUpdateProcessor.java @@ -22,7 +22,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -306,7 +305,7 @@ public void testRandomNestPathQueryFiltering() { assertTrue( // we expected at least one query for every "real" path, // but there will be more because we'll try lots of sub-paths that have no docs docs.numDocsDescendentFromPath.keySet().size() - < docs.recursiveCheckParentQueryOfAllChildren(Collections.emptyList())); + < docs.recursiveCheckParentQueryOfAllChildren(List.of())); // check: path that is guaranteed not to exist... assertEquals(1, docs.recursiveCheckParentQueryOfAllChildren(Arrays.asList("xxx", "yyy"))); @@ -315,7 +314,7 @@ public void testRandomNestPathQueryFiltering() { assertTrue( // we expected at least one query for every "real" path, // but there will be more because we'll try lots of sub-paths that have no docs docs.numDocsWithPathWithKids.keySet().size() - < docs.recursiveCheckChildQueryOfAllParents(Collections.emptyList())); + < docs.recursiveCheckChildQueryOfAllParents(List.of())); // check: path that is guaranteed not to exist... assertEquals(1, docs.recursiveCheckChildQueryOfAllParents(Arrays.asList("xxx", "yyy"))); @@ -334,7 +333,7 @@ private static class RandomNestedDocModel { private int idCounter = 0; public synchronized SolrInputDocument buildRandomDoc() { - return buildRandomDoc(null, Collections.emptyList(), 15); + return buildRandomDoc(null, List.of(), 15); } private static String joinPath(List test_path) { diff --git a/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java b/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java index c154e8685161..d9028e99578e 100644 --- a/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java +++ b/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java @@ -1275,13 +1275,13 @@ private void manuallyConstructLegacyTRA() throws Exception { // some tidbits for handling zk data here are swiped from Aliases.json Map aliasMap; if (data == null || data.length == 0) { - aliasMap = Collections.emptyMap(); + aliasMap = Map.of(); } else { aliasMap = (Map) Utils.fromJSON(data); } assertNotEquals(0, aliasMap.size()); - Map colAliases = aliasMap.getOrDefault("collection", Collections.emptyMap()); + Map colAliases = aliasMap.getOrDefault("collection", Map.of()); assertNotEquals(0, colAliases.size()); String singleInitialCollection = (String) colAliases.get(alias); diff --git a/solr/core/src/test/org/apache/solr/util/ModuleUtilsTest.java b/solr/core/src/test/org/apache/solr/util/ModuleUtilsTest.java index b5629222c351..66c94fa87256 100644 --- a/solr/core/src/test/org/apache/solr/util/ModuleUtilsTest.java +++ b/solr/core/src/test/org/apache/solr/util/ModuleUtilsTest.java @@ -19,7 +19,6 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.Set; import org.apache.solr.SolrTestCase; @@ -52,7 +51,7 @@ public void testGetModuleLibPath() { } public void testResolveFromSyspropOrEnv() { - assertEquals(Collections.emptySet(), ModuleUtils.resolveFromSyspropOrEnv()); + assertTrue(ModuleUtils.resolveFromSyspropOrEnv().isEmpty()); System.setProperty("solr.modules", "foo ,bar, baz,mod1"); assertEquals(Set.of("foo", "bar", "baz", "mod1"), ModuleUtils.resolveFromSyspropOrEnv()); System.clearProperty("solr.modules"); @@ -66,8 +65,7 @@ public void testResolveModules() { assertEquals( Set.of("foo", "bar", "baz", "mod1"), Set.copyOf(ModuleUtils.resolveModulesFromStringOrSyspropOrEnv("foo ,bar, baz,mod1"))); - assertEquals( - Collections.emptySet(), Set.copyOf(ModuleUtils.resolveModulesFromStringOrSyspropOrEnv(""))); + assertTrue(ModuleUtils.resolveModulesFromStringOrSyspropOrEnv("").isEmpty()); System.setProperty("solr.modules", "foo ,bar, baz,mod1"); assertEquals( Set.of("foo", "bar", "baz", "mod1"), diff --git a/solr/cross-dc-manager/src/test/org/apache/solr/crossdc/manager/consumer/KafkaCrossDcConsumerTest.java b/solr/cross-dc-manager/src/test/org/apache/solr/crossdc/manager/consumer/KafkaCrossDcConsumerTest.java index 89f85f36db2d..b576f074b323 100644 --- a/solr/cross-dc-manager/src/test/org/apache/solr/crossdc/manager/consumer/KafkaCrossDcConsumerTest.java +++ b/solr/cross-dc-manager/src/test/org/apache/solr/crossdc/manager/consumer/KafkaCrossDcConsumerTest.java @@ -227,7 +227,7 @@ public void testRunAndShutdown() throws Exception { .when(kafkaConsumerMock) .subscribe(anyList()); - when(kafkaConsumerMock.poll(any())).thenReturn(new ConsumerRecords<>(Collections.emptyMap())); + when(kafkaConsumerMock.poll(any())).thenReturn(new ConsumerRecords<>(Map.of())); ExecutorService consumerThreadExecutor = ExecutorUtil.newMDCAwareSingleThreadExecutor(new SolrNamedThreadFactory("CrossDCConsumer")); diff --git a/solr/modules/clustering/src/test/org/apache/solr/handler/clustering/EchoClusteringAlgorithm.java b/solr/modules/clustering/src/test/org/apache/solr/handler/clustering/EchoClusteringAlgorithm.java index 51448a0aa78c..10eba2313034 100644 --- a/solr/modules/clustering/src/test/org/apache/solr/handler/clustering/EchoClusteringAlgorithm.java +++ b/solr/modules/clustering/src/test/org/apache/solr/handler/clustering/EchoClusteringAlgorithm.java @@ -17,7 +17,6 @@ package org.apache.solr.handler.clustering; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Set; import java.util.stream.Stream; @@ -39,7 +38,7 @@ public boolean supports(LanguageComponents languageComponents) { @Override public Set> requiredLanguageComponents() { - return Collections.emptySet(); + return Set.of(); } @Override diff --git a/solr/modules/clustering/src/test/org/apache/solr/handler/clustering/MockClusteringAlgorithm.java b/solr/modules/clustering/src/test/org/apache/solr/handler/clustering/MockClusteringAlgorithm.java index 864f5f782526..c1ca654e346d 100644 --- a/solr/modules/clustering/src/test/org/apache/solr/handler/clustering/MockClusteringAlgorithm.java +++ b/solr/modules/clustering/src/test/org/apache/solr/handler/clustering/MockClusteringAlgorithm.java @@ -17,7 +17,6 @@ package org.apache.solr.handler.clustering; import java.util.ArrayList; -import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Set; @@ -76,7 +75,7 @@ public boolean supports(LanguageComponents languageComponents) { @Override public Set> requiredLanguageComponents() { - return Collections.emptySet(); + return Set.of(); } @Override diff --git a/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/ExtractingDocumentLoader.java b/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/ExtractingDocumentLoader.java index 64a34cdd13f9..d4fd1c4cbd1b 100644 --- a/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/ExtractingDocumentLoader.java +++ b/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/ExtractingDocumentLoader.java @@ -19,8 +19,8 @@ import java.io.IOException; import java.io.InputStream; import java.lang.invoke.MethodHandles; -import java.util.Collections; import java.util.LinkedHashMap; +import java.util.Map; import java.util.regex.Pattern; import org.apache.solr.common.SolrException; import org.apache.solr.common.params.SolrParams; @@ -142,7 +142,7 @@ public void load( .extractFormat(extractFormat) .tikaServerRecursive(tikaserverRecursive) .tikaServerTimeoutSeconds(tikaTimeoutSecs) - .tikaServerRequestHeaders(Collections.emptyMap()) + .tikaServerRequestHeaders(Map.of()) .build(); boolean captureAttr = params.getBool(ExtractingParams.CAPTURE_ATTRIBUTES, false); diff --git a/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/ExtractionMetadata.java b/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/ExtractionMetadata.java index 764a0a9d152c..1a274e10f3bb 100644 --- a/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/ExtractionMetadata.java +++ b/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/ExtractionMetadata.java @@ -18,7 +18,6 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; @@ -42,7 +41,7 @@ public void add(String name, Collection values) { /** Gets all metadata values for the given name. */ public List get(String name) { List vals = super.get(name); - return (vals == null) ? Collections.emptyList() : vals; + return (vals == null) ? List.of() : vals; } /** Gets the first metadata value for the given name or null if not set. */ diff --git a/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/SolrContentHandler.java b/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/SolrContentHandler.java index f9d84167127e..c825605994ff 100644 --- a/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/SolrContentHandler.java +++ b/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/SolrContentHandler.java @@ -18,7 +18,6 @@ import java.lang.invoke.MethodHandles; import java.util.ArrayDeque; -import java.util.Collections; import java.util.Deque; import java.util.HashMap; import java.util.HashSet; @@ -92,7 +91,7 @@ public SolrContentHandler(ExtractionMetadata metadata, SolrParams params, IndexS fieldBuilders.put(captureFields[i], new StringBuilder()); } } else { - fieldBuilders = Collections.emptyMap(); + fieldBuilders = Map.of(); } bldrStack.add(catchAllBuilder); } diff --git a/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/fromtika/ToXMLContentHandler.java b/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/fromtika/ToXMLContentHandler.java index 5310e234d7b1..11929cb05d5d 100644 --- a/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/fromtika/ToXMLContentHandler.java +++ b/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/fromtika/ToXMLContentHandler.java @@ -23,7 +23,6 @@ import java.io.OutputStream; import java.io.UnsupportedEncodingException; -import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.xml.sax.Attributes; @@ -47,7 +46,7 @@ private static class ElementInfo { public ElementInfo(ElementInfo parent, Map namespaces) { this.parent = parent; if (namespaces.isEmpty()) { - this.namespaces = Collections.emptyMap(); + this.namespaces = Map.of(); } else { this.namespaces = new HashMap(namespaces); } diff --git a/solr/modules/extraction/src/test/org/apache/solr/handler/extraction/TikaServerExtractionBackendTest.java b/solr/modules/extraction/src/test/org/apache/solr/handler/extraction/TikaServerExtractionBackendTest.java index 5fc5dd2c169f..49dca514e248 100644 --- a/solr/modules/extraction/src/test/org/apache/solr/handler/extraction/TikaServerExtractionBackendTest.java +++ b/solr/modules/extraction/src/test/org/apache/solr/handler/extraction/TikaServerExtractionBackendTest.java @@ -21,7 +21,6 @@ import java.io.ByteArrayInputStream; import java.nio.charset.StandardCharsets; import java.nio.file.Files; -import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.Map; @@ -175,7 +174,7 @@ public void testPdfWithImageRecursive() throws Exception { } private ExtractionRequest newRequest(String file, String contentType, String content) { - return newRequest(file, contentType, content, false, Collections.emptyMap()); + return newRequest(file, contentType, content, false, Map.of()); } @Test diff --git a/solr/modules/jwt-auth/src/java/org/apache/solr/security/jwt/JWTAuthPlugin.java b/solr/modules/jwt-auth/src/java/org/apache/solr/security/jwt/JWTAuthPlugin.java index 4c4c35eaabbd..8815b73ecec6 100644 --- a/solr/modules/jwt-auth/src/java/org/apache/solr/security/jwt/JWTAuthPlugin.java +++ b/solr/modules/jwt-auth/src/java/org/apache/solr/security/jwt/JWTAuthPlugin.java @@ -257,7 +257,7 @@ public void init(Map pluginConfig) { } Object redirectUrisObj = pluginConfig.get(PARAM_REDIRECT_URIS); - redirectUris = Collections.emptyList(); + redirectUris = List.of(); if (redirectUrisObj != null) { if (redirectUrisObj instanceof String) { redirectUris = Collections.singletonList((String) redirectUrisObj); @@ -603,7 +603,7 @@ protected JWTAuthenticationResponse authenticate(String authorizationHeader) { } // Find scopes for user - Set scopes = Collections.emptySet(); + Set scopes = Set.of(); Object scopesObj = jwtClaims.getClaimValue(CLAIM_SCOPE); if (scopesObj != null) { if (scopesObj instanceof String) { diff --git a/solr/modules/langid/src/java/org/apache/solr/update/processor/LangDetectLanguageIdentifierUpdateProcessor.java b/solr/modules/langid/src/java/org/apache/solr/update/processor/LangDetectLanguageIdentifierUpdateProcessor.java index d3882348f4b7..f5824b8e916e 100644 --- a/solr/modules/langid/src/java/org/apache/solr/update/processor/LangDetectLanguageIdentifierUpdateProcessor.java +++ b/solr/modules/langid/src/java/org/apache/solr/update/processor/LangDetectLanguageIdentifierUpdateProcessor.java @@ -24,7 +24,6 @@ import java.io.Reader; import java.lang.invoke.MethodHandles; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; @@ -79,10 +78,10 @@ protected List detectLanguage(Reader solrDocReader) { return solrLangList; } catch (LangDetectException e) { log.debug("Could not determine language, returning empty list: ", e); - return Collections.emptyList(); + return List.of(); } catch (IOException e) { log.warn("Could not determine language.", e); - return Collections.emptyList(); + return List.of(); } } } diff --git a/solr/modules/ltr/src/java/org/apache/solr/ltr/LTRScoringQuery.java b/solr/modules/ltr/src/java/org/apache/solr/ltr/LTRScoringQuery.java index 22a9a8e5dfbd..963e706be998 100644 --- a/solr/modules/ltr/src/java/org/apache/solr/ltr/LTRScoringQuery.java +++ b/solr/modules/ltr/src/java/org/apache/solr/ltr/LTRScoringQuery.java @@ -21,7 +21,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.Callable; @@ -80,7 +79,7 @@ public class LTRScoringQuery extends Query implements Accountable { private Feature.FeatureWeight[] extractedFeatureWeights; public LTRScoringQuery(LTRScoringModel ltrScoringModel) { - this(ltrScoringModel, Collections.emptyMap(), null); + this(ltrScoringModel, Map.of(), null); } public LTRScoringQuery( diff --git a/solr/modules/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java b/solr/modules/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java index a85597bde089..32b55af04362 100644 --- a/solr/modules/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java +++ b/solr/modules/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java @@ -17,7 +17,6 @@ package org.apache.solr.ltr.response.transform; import java.io.IOException; -import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.Map; @@ -462,13 +461,7 @@ private void implTransform(SolrDocument doc, int docid, DocIterationInfo docInfo private static class LoggingModel extends LTRScoringModel { public LoggingModel(String name, String featureStoreName, List allFeatures) { - this( - name, - Collections.emptyList(), - Collections.emptyList(), - featureStoreName, - allFeatures, - Collections.emptyMap()); + this(name, List.of(), List.of(), featureStoreName, allFeatures, Map.of()); } protected LoggingModel( diff --git a/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestWrapperModel.java b/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestWrapperModel.java index 119f6ba5e147..80e2b1b3101c 100644 --- a/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestWrapperModel.java +++ b/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestWrapperModel.java @@ -37,17 +37,11 @@ public class TestWrapperModel extends TestRerankBase { private static class StubWrapperModel extends WrapperModel { private StubWrapperModel(String name) { - this(name, Collections.emptyList(), Collections.emptyList()); + this(name, List.of(), List.of()); } private StubWrapperModel(String name, List features, List norms) { - super( - name, - features, - norms, - FeatureStore.DEFAULT_FEATURE_STORE_NAME, - features, - Collections.emptyMap()); + super(name, features, norms, FeatureStore.DEFAULT_FEATURE_STORE_NAME, features, Map.of()); } @Override @@ -73,18 +67,14 @@ public void testValidate() throws Exception { // wrapper model with features WrapperModel wrapperModelWithFeatures = new StubWrapperModel( - "testModel", - Collections.singletonList(new ValueFeature("val", Collections.emptyMap())), - Collections.emptyList()); + "testModel", Collections.singletonList(new ValueFeature("val", Map.of())), List.of()); ModelException e = expectThrows(ModelException.class, wrapperModelWithFeatures::validate); assertEquals("features must be empty for the wrapper model testModel", e.getMessage()); // wrapper model with norms WrapperModel wrapperModelWithNorms = new StubWrapperModel( - "testModel", - Collections.emptyList(), - Collections.singletonList(IdentityNormalizer.INSTANCE)); + "testModel", List.of(), Collections.singletonList(IdentityNormalizer.INSTANCE)); e = expectThrows(ModelException.class, wrapperModelWithNorms::validate); assertEquals("norms must be empty for the wrapper model testModel", e.getMessage()); @@ -95,9 +85,7 @@ public void testValidate() throws Exception { LTRScoringModel wrappedModel = createMockWrappedModel( FeatureStore.DEFAULT_FEATURE_STORE_NAME, - Arrays.asList( - new ValueFeature("v1", Collections.emptyMap()), - new ValueFeature("v2", Collections.emptyMap())), + Arrays.asList(new ValueFeature("v1", Map.of()), new ValueFeature("v2", Map.of())), Arrays.asList(IdentityNormalizer.INSTANCE, IdentityNormalizer.INSTANCE)); wrapperModel.updateModel(wrappedModel); } @@ -107,9 +95,7 @@ public void testValidate() throws Exception { LTRScoringModel wrappedModel = createMockWrappedModel( "wrappedFeatureStore", - Arrays.asList( - new ValueFeature("v1", Collections.emptyMap()), - new ValueFeature("v2", Collections.emptyMap())), + Arrays.asList(new ValueFeature("v1", Map.of()), new ValueFeature("v2", Map.of())), Arrays.asList(IdentityNormalizer.INSTANCE, IdentityNormalizer.INSTANCE)); e = expectThrows(ModelException.class, () -> wrapperModel.updateModel(wrappedModel)); assertEquals( @@ -122,7 +108,7 @@ public void testValidate() throws Exception { LTRScoringModel wrappedModel = createMockWrappedModel( FeatureStore.DEFAULT_FEATURE_STORE_NAME, - Collections.emptyList(), + List.of(), Arrays.asList(IdentityNormalizer.INSTANCE, IdentityNormalizer.INSTANCE)); e = expectThrows(ModelException.class, () -> wrapperModel.updateModel(wrappedModel)); assertEquals("no features declared for model testModel", e.getMessage()); @@ -133,10 +119,8 @@ public void testValidate() throws Exception { LTRScoringModel wrappedModel = createMockWrappedModel( FeatureStore.DEFAULT_FEATURE_STORE_NAME, - Arrays.asList( - new ValueFeature("v1", Collections.emptyMap()), - new ValueFeature("v2", Collections.emptyMap())), - Collections.emptyList()); + Arrays.asList(new ValueFeature("v1", Map.of()), new ValueFeature("v2", Map.of())), + List.of()); e = expectThrows(ModelException.class, () -> wrapperModel.updateModel(wrappedModel)); assertEquals("counted 2 features and 0 norms in model testModel", e.getMessage()); } diff --git a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTable.java b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTable.java index 8bf82037e033..daffb2788ffc 100644 --- a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTable.java +++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTable.java @@ -22,7 +22,6 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -117,16 +116,7 @@ public RelDataType getRowType(RelDataTypeFactory typeFactory) { private Enumerable query(final Properties properties) { return query( - properties, - Collections.emptyList(), - null, - Collections.emptyList(), - Collections.emptyList(), - Collections.emptyList(), - null, - null, - null, - null); + properties, List.of(), null, List.of(), List.of(), List.of(), null, null, null, null); } /** diff --git a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/eval/ListCacheEvaluator.java b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/eval/ListCacheEvaluator.java index b6026bf05af1..052e7e29813d 100644 --- a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/eval/ListCacheEvaluator.java +++ b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/eval/ListCacheEvaluator.java @@ -18,7 +18,7 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Collections; +import java.util.List; import java.util.Locale; import java.util.Map; import java.util.concurrent.ConcurrentMap; @@ -54,7 +54,7 @@ public Object doWork(Object... values) throws IOException { if (spaceCache != null) { return new ArrayList<>(spaceCache.keySet()); } else { - return Collections.emptyList(); + return List.of(); } } else { throw new IOException("The listCache function requires two parameters: workspace and key"); diff --git a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/eval/MovingAverageEvaluatorTest.java b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/eval/MovingAverageEvaluatorTest.java index 9c7d45a0e9c5..df88bc9db982 100644 --- a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/eval/MovingAverageEvaluatorTest.java +++ b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/eval/MovingAverageEvaluatorTest.java @@ -17,8 +17,8 @@ package org.apache.solr.client.solrj.io.stream.eval; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.apache.solr.SolrTestCase; import org.apache.solr.client.solrj.io.Tuple; @@ -47,6 +47,6 @@ public void doesNotFailWithEmptyList() throws Exception { values.clear(); values.put("a", new ArrayList()); result = evaluator.evaluate(new Tuple(values)); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } } diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/ZkClientClusterStateProvider.java b/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/ZkClientClusterStateProvider.java index b92dab8c362a..fd3525b564b0 100644 --- a/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/ZkClientClusterStateProvider.java +++ b/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/ZkClientClusterStateProvider.java @@ -21,7 +21,6 @@ import java.lang.invoke.MethodHandles; import java.time.Instant; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; @@ -108,7 +107,7 @@ public static ClusterState createFromJsonSupportingLegacyConfigName( SolrZkClient zkClient, Instant createTime) { if (bytes == null || bytes.length == 0) { - return new ClusterState(liveNodes, Collections.emptyMap()); + return new ClusterState(liveNodes, Map.of()); } Map stateMap = (Map) Utils.fromJSON(bytes); Map props = (Map) stateMap.get(coll); @@ -158,7 +157,7 @@ public Set getLiveNodes() { if (clusterState != null) { return clusterState.getLiveNodes(); } else { - return Collections.emptySet(); + return Set.of(); } } diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/ZkDistribStateManager.java b/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/ZkDistribStateManager.java index b361bcd0662f..e0631302ae3d 100644 --- a/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/ZkDistribStateManager.java +++ b/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/impl/ZkDistribStateManager.java @@ -18,7 +18,6 @@ package org.apache.solr.client.solrj.impl; import java.io.IOException; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.NoSuchElementException; @@ -55,10 +54,10 @@ public Map getJson(String path) try { data = getData(path); } catch (KeeperException.NoNodeException | NoSuchElementException e) { - return Collections.emptyMap(); + return Map.of(); } if (data == null || data.getData() == null || data.getData().length == 0) { - return Collections.emptyMap(); + return Map.of(); } return (Map) Utils.fromJSON(data.getData()); } diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ClusterProperties.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ClusterProperties.java index f70ba68c0998..dde902e08067 100644 --- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ClusterProperties.java +++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ClusterProperties.java @@ -20,7 +20,6 @@ import java.io.IOException; import java.lang.invoke.MethodHandles; import java.util.Arrays; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -97,7 +96,7 @@ public Map getClusterProperties() throws IOException { Utils.fromJSON(client.getData(ZkStateReader.CLUSTER_PROPS, null, new Stat())); return properties; } catch (KeeperException.NoNodeException e) { - return Collections.emptyMap(); + return Map.of(); } catch (KeeperException | InterruptedException e) { throw new IOException("Error reading cluster property", SolrZkClient.checkInterrupted(e)); } diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/CollectionProperties.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/CollectionProperties.java index 25b130862672..54ff67e712eb 100644 --- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/CollectionProperties.java +++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/CollectionProperties.java @@ -18,7 +18,6 @@ package org.apache.solr.common.cloud; import java.io.IOException; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import org.apache.solr.common.util.Utils; @@ -69,7 +68,7 @@ public Map getCollectionProperties(String collection) throws IOE Utils.fromJSON( client.getData(ZkStateReader.getCollectionPropsPath(collection), null, new Stat())); } catch (KeeperException.NoNodeException e) { - return Collections.emptyMap(); + return Map.of(); } catch (KeeperException | InterruptedException e) { throw new IOException( "Error reading properties for collection " + collection, diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/CollectionPropertiesZkStateReader.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/CollectionPropertiesZkStateReader.java index d23014e58496..31f2369e26f8 100644 --- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/CollectionPropertiesZkStateReader.java +++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/CollectionPropertiesZkStateReader.java @@ -16,8 +16,6 @@ */ package org.apache.solr.common.cloud; -import static java.util.Collections.emptyMap; - import java.io.Closeable; import java.lang.invoke.MethodHandles; import java.util.ArrayList; @@ -335,7 +333,7 @@ private VersionedCollectionProps fetchCollectionProperties(String collection, Wa continue; } } - return new VersionedCollectionProps(-1, emptyMap()); + return new VersionedCollectionProps(-1, Map.of()); } } } diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/DefaultZkCredentialsInjector.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/DefaultZkCredentialsInjector.java index d78d4da83ef9..5f1fe8404530 100755 --- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/DefaultZkCredentialsInjector.java +++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/DefaultZkCredentialsInjector.java @@ -16,13 +16,12 @@ */ package org.apache.solr.common.cloud; -import java.util.Collections; import java.util.List; public class DefaultZkCredentialsInjector implements ZkCredentialsInjector { @Override public List getZkCredentials() { - return Collections.emptyList(); + return List.of(); } } diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/PerReplicaStatesOps.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/PerReplicaStatesOps.java index 1995bae34bd2..d37a55ca7ecd 100644 --- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/PerReplicaStatesOps.java +++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/PerReplicaStatesOps.java @@ -60,7 +60,7 @@ public static PerReplicaStates fetch( PerReplicaStatesOps.class.getName() + "/beforePrsFetch"); if (current != null) { Stat stat = zkClient.exists(current.path, null); - if (stat == null) return new PerReplicaStates(path, 0, Collections.emptyList()); + if (stat == null) return new PerReplicaStates(path, 0, List.of()); if (current.cversion == stat.getCversion()) return current; // not modifiedZkStateReaderTest } Stat stat = new Stat(); @@ -292,7 +292,7 @@ public static PerReplicaStatesOps deleteReplica(String replica, PerReplicaStates prs -> { List result; if (prs == null) { - result = Collections.emptyList(); + result = List.of(); } else { PerReplicaStates.State state = prs.get(replica); result = addDeleteStaleNodes(new ArrayList<>(), state); @@ -356,7 +356,7 @@ public List get() { public List get(PerReplicaStates rs) { ops = refresh(rs); - if (ops == null) ops = Collections.emptyList(); + if (ops == null) ops = List.of(); this.rs = rs; return ops; } diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/SecurityNodeWatcher.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/SecurityNodeWatcher.java index 0a35bad37e54..376a9c140c55 100644 --- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/SecurityNodeWatcher.java +++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/SecurityNodeWatcher.java @@ -16,8 +16,6 @@ */ package org.apache.solr.common.cloud; -import static java.util.Collections.emptyMap; - import java.lang.invoke.MethodHandles; import java.nio.charset.StandardCharsets; import java.util.Map; @@ -47,7 +45,7 @@ public SecurityNodeWatcher(ZkStateReader zkStateReader, Runnable securityNodeLis ZkStateReader.ConfigData cd = new ZkStateReader.ConfigData(); cd.data = data.data == null || data.data.length == 0 - ? emptyMap() + ? Map.of() : Utils.getDeepCopy((Map) Utils.fromJSON(data.data), 4, false); cd.version = data.stat == null ? -1 : data.stat.getVersion(); securityData = cd; @@ -101,7 +99,7 @@ void register() throws InterruptedException, KeeperException { @SuppressWarnings("unchecked") ZkStateReader.ConfigData getSecurityProps(boolean getFresh) { if (!getFresh) { - if (securityData == null) return new ZkStateReader.ConfigData(emptyMap(), -1); + if (securityData == null) return new ZkStateReader.ConfigData(Map.of(), -1); return new ZkStateReader.ConfigData(securityData.data, securityData.version); } try { diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java index 2f60c7aad9b7..88033012b9f9 100644 --- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java +++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java @@ -16,7 +16,6 @@ */ package org.apache.solr.common.cloud; -import static java.util.Collections.emptyMap; import static java.util.Collections.emptySortedSet; import java.lang.invoke.MethodHandles; @@ -181,7 +180,7 @@ public class ZkStateReader implements SolrCloseable { private volatile SortedSet liveNodes = emptySortedSet(); - private volatile Map clusterProperties = Collections.emptyMap(); + private volatile Map clusterProperties = Map.of(); /** * Collections with active watches. The {@link StatefulCollectionWatch} inside for each collection @@ -718,7 +717,7 @@ public void removeCloudCollectionsListener(CloudCollectionsListener cloudCollect } private void notifyNewCloudCollectionsListener(CloudCollectionsListener listener) { - listener.onChange(Collections.emptySet(), lastFetchedCollectionSet.get()); + listener.onChange(Set.of(), lastFetchedCollectionSet.get()); } private void notifyCloudCollectionsListeners() { @@ -1187,7 +1186,7 @@ private void loadClusterProperties() { } return; } catch (KeeperException.NoNodeException e) { - this.clusterProperties = Collections.emptyMap(); + this.clusterProperties = Map.of(); log.debug("Loaded empty cluster properties"); // set an exists watch, and if the node has been created since the last call, // read the data again @@ -1220,7 +1219,7 @@ static String getCollectionPropsPath(final String collection) { * returns null. */ public ConfigData getSecurityProps(boolean getFresh) { - if (securityNodeWatcher == null) return new ConfigData(emptyMap(), -1); + if (securityNodeWatcher == null) return new ConfigData(Map.of(), -1); return securityNodeWatcher.getSecurityProps(getFresh); } @@ -1367,7 +1366,7 @@ public void process(WatchedEvent event) { log.debug("A collections change: [{}], has occurred - updating...", event); refreshAndWatch(); synchronized (getUpdateLock()) { - constructState(Collections.emptySet()); + constructState(Set.of()); } } @@ -1454,7 +1453,7 @@ private DocCollection fetchCollectionState(String coll, Watcher watcher) ZkClientClusterStateProvider.createFromJsonSupportingLegacyConfigName( stat.getVersion(), data, - Collections.emptySet(), + Set.of(), coll, zkClient, Instant.ofEpochMilli(stat.getCtime())); @@ -1557,7 +1556,7 @@ public void unregisterCore(String collection) { }); if (reconstructState.get()) { synchronized (getUpdateLock()) { - constructState(Collections.emptySet()); + constructState(Set.of()); } } } @@ -1863,7 +1862,7 @@ public void removeDocCollectionWatcher(String collection, DocCollectionWatcher w }); if (reconstructState.get()) { synchronized (getUpdateLock()) { - constructState(Collections.emptySet()); + constructState(Set.of()); } } } @@ -1979,7 +1978,7 @@ public AliasesManager getAliasesManager() { // called by createClusterStateWatchersAndUpdate() private void refreshAliases(AliasesManager watcher) throws KeeperException, InterruptedException { synchronized (getUpdateLock()) { - constructState(Collections.emptySet()); + constructState(Set.of()); zkClient.exists(ALIASES, watcher); } aliasesManager.update(); diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java index c9ae7b1bc7e7..e2faf6b58ba7 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java @@ -329,8 +329,8 @@ > getCacheTimeout()) { "LISTALIASES not found, possibly using older Solr server. Aliases won't work {}", "unless you upgrade Solr server", e); - this.aliases = Collections.emptyMap(); - this.aliasProperties = Collections.emptyMap(); + this.aliases = Map.of(); + this.aliasProperties = Map.of(); this.aliasesTimestamp = System.nanoTime(); return aliases; } @@ -354,7 +354,7 @@ > getCacheTimeout()) { @Override public Map getAliasProperties(String alias) { getAliases(false); - return Collections.unmodifiableMap(aliasProperties.getOrDefault(alias, Collections.emptyMap())); + return Collections.unmodifiableMap(aliasProperties.getOrDefault(alias, Map.of())); } @Override diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java index df7034acf832..60a80e156343 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java @@ -1123,7 +1123,7 @@ public NamedList request(SolrRequest request, String collection) } List inputCollections = - collection == null ? Collections.emptyList() : StrUtils.splitSmart(collection, ",", true); + collection == null ? List.of() : StrUtils.splitSmart(collection, ",", true); return requestWithRetryOnStaleState( request, 0, @@ -1577,7 +1577,7 @@ protected NamedList sendRequest(SolrRequest request, List inp */ private Set resolveAliases(List inputCollections) { if (inputCollections.isEmpty()) { - return Collections.emptySet(); + return Set.of(); } LinkedHashSet uniqueNames = new LinkedHashSet<>(); // consistent ordering for (String collectionName : inputCollections) { diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/DelegatingClusterStateProvider.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/DelegatingClusterStateProvider.java index 019ef748f021..48030c79c7c8 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/DelegatingClusterStateProvider.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/DelegatingClusterStateProvider.java @@ -46,7 +46,7 @@ public Set getLiveNodes() { if (delegate != null) { return delegate.getLiveNodes(); } else { - return Collections.emptySet(); + return Set.of(); } } @@ -64,7 +64,7 @@ public Map getAliasProperties(String alias) { if (delegate != null) { return delegate.getAliasProperties(alias); } else { - return Collections.emptyMap(); + return Map.of(); } } @@ -100,7 +100,7 @@ public Map getClusterProperties() { if (delegate != null) { return delegate.getClusterProperties(); } else { - return Collections.emptyMap(); + return Map.of(); } } diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/request/ApiMapping.java b/solr/solrj/src/java/org/apache/solr/client/solrj/request/ApiMapping.java index 8c972a343eb9..640d4780a5cb 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/request/ApiMapping.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/request/ApiMapping.java @@ -19,10 +19,10 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.common.util.CommandOperation; @@ -60,7 +60,7 @@ private static Collection getParamNames_(CommandOperation op, CommandMet collectKeyNames(map, result, ""); return result; } else { - return Collections.emptySet(); + return Set.of(); } } diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/request/SolrQuery.java b/solr/solrj/src/java/org/apache/solr/client/solrj/request/SolrQuery.java index 6146dbe0d6ef..23a3c459f768 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/request/SolrQuery.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/request/SolrQuery.java @@ -623,7 +623,7 @@ public SolrQuery setSorts(List value) { * @since 4.2 */ public List getSorts() { - if (sortClauses == null) return Collections.emptyList(); + if (sortClauses == null) return List.of(); else return Collections.unmodifiableList(sortClauses); } diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/Cluster.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/Cluster.java index fad992c13889..59a97f6d7579 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/Cluster.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/Cluster.java @@ -16,7 +16,6 @@ */ package org.apache.solr.client.solrj.response; -import java.util.Collections; import java.util.List; import java.util.Objects; @@ -32,7 +31,7 @@ public class Cluster { private boolean otherTopics; public Cluster(List labels, double score, List docIds) { - this(labels, score, docIds, Collections.emptyList(), false); + this(labels, score, docIds, List.of(), false); } /** @@ -46,10 +45,10 @@ public Cluster( List docIds, List subclusters, boolean otherTopics) { - this.labels = Objects.requireNonNullElse(labels, Collections.emptyList()); + this.labels = Objects.requireNonNullElse(labels, List.of()); this.score = score; - this.docIds = Objects.requireNonNullElse(docIds, Collections.emptyList()); - this.subclusters = Objects.requireNonNullElse(subclusters, Collections.emptyList()); + this.docIds = Objects.requireNonNullElse(docIds, List.of()); + this.subclusters = Objects.requireNonNullElse(subclusters, List.of()); this.otherTopics = otherTopics; } diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/ClusteringResponse.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/ClusteringResponse.java index 0700ff8d2692..0fe1bc5bf92e 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/ClusteringResponse.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/ClusteringResponse.java @@ -17,7 +17,6 @@ package org.apache.solr.client.solrj.response; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; import org.apache.solr.common.util.NamedList; @@ -37,8 +36,8 @@ public ClusteringResponse(List> clusterInfo) { clusters = new ArrayList<>(); for (NamedList clusterNode : clusterInfo) { List labelList, docIdList; - List subclusters = Collections.emptyList(); - labelList = docIdList = Collections.emptyList(); + List subclusters = List.of(); + labelList = docIdList = List.of(); Double score = 0d; boolean otherTopics = false; for (Map.Entry e : clusterNode) { diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/CollectionAdminResponse.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/CollectionAdminResponse.java index 71aeb2c8d6e6..1b01029c018c 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/CollectionAdminResponse.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/CollectionAdminResponse.java @@ -16,7 +16,6 @@ */ package org.apache.solr.client.solrj.response; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -67,7 +66,7 @@ public Map getAliases() { if (response.get("aliases") != null) { return ((Map) response.get("aliases")); } - return Collections.emptyMap(); + return Map.of(); } public Map> getAliasesAsLists() { @@ -81,7 +80,7 @@ public Map> getAliasProperties() { if (response.get("properties") != null) { return ((Map>) response.get("properties")); } - return Collections.emptyMap(); + return Map.of(); } @SuppressWarnings("unchecked") diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/FacetField.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/FacetField.java index 9e9025d7672c..b339ac284716 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/FacetField.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/FacetField.java @@ -18,7 +18,6 @@ import java.io.Serializable; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.apache.solr.client.solrj.util.ClientUtils; @@ -102,7 +101,7 @@ public String getName() { } public List getValues() { - return _values == null ? Collections.emptyList() : _values; + return _values == null ? List.of() : _values; } public int getValueCount() { diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/LukeResponse.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/LukeResponse.java index c38a2caf8300..265a40dfb3ef 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/LukeResponse.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/LukeResponse.java @@ -18,7 +18,6 @@ import java.io.Serializable; import java.util.ArrayList; -import java.util.Collections; import java.util.EnumSet; import java.util.HashMap; import java.util.List; @@ -43,7 +42,7 @@ public static class FieldTypeInfo implements Serializable { public FieldTypeInfo(String name) { this.name = name; - fields = Collections.emptyList(); + fields = List.of(); } public String getAnalyzer() { diff --git a/solr/solrj/src/java/org/apache/solr/common/MapWriter.java b/solr/solrj/src/java/org/apache/solr/common/MapWriter.java index d0e52f6892f7..3f1f61e24ba5 100644 --- a/solr/solrj/src/java/org/apache/solr/common/MapWriter.java +++ b/solr/solrj/src/java/org/apache/solr/common/MapWriter.java @@ -18,7 +18,6 @@ package org.apache.solr.common; import java.io.IOException; -import java.util.Collections; import java.util.Map; import java.util.function.BiConsumer; import java.util.function.BiPredicate; @@ -153,5 +152,5 @@ default BiConsumer getBiConsumer() { } @Deprecated // use SimpleOrderedMap.of() - MapWriter EMPTY = new MapWriterMap(Collections.emptyMap()); + MapWriter EMPTY = new MapWriterMap(Map.of()); } diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/Aliases.java b/solr/solrj/src/java/org/apache/solr/common/cloud/Aliases.java index c29cdb6f5d80..1e383fd91aef 100644 --- a/solr/solrj/src/java/org/apache/solr/common/cloud/Aliases.java +++ b/solr/solrj/src/java/org/apache/solr/common/cloud/Aliases.java @@ -43,8 +43,7 @@ public class Aliases { * aliases are removed. The -1 version makes it subordinate to any real version, and furthermore * we never "set" this EMPTY instance into ZK. */ - public static final Aliases EMPTY = - new Aliases(Collections.emptyMap(), Collections.emptyMap(), -1); + public static final Aliases EMPTY = new Aliases(Map.of(), Map.of(), -1); // These two constants correspond to the top level elements in aliases.json. The first one denotes // a section containing a list of aliases and their attendant collections, the second contains a @@ -97,11 +96,11 @@ public static Aliases fromJSON(byte[] bytes, int zNodeVersion) { Map aliasMap = (Map) Utils.fromJSON(bytes); @SuppressWarnings({"rawtypes"}) - Map colAliases = aliasMap.getOrDefault(COLLECTION, Collections.emptyMap()); + Map colAliases = aliasMap.getOrDefault(COLLECTION, Map.of()); colAliases = convertMapOfCommaDelimitedToMapOfList(colAliases); // also unmodifiable Map> colMeta = - aliasMap.getOrDefault(COLLECTION_METADATA, Collections.emptyMap()); + new LinkedHashMap<>(aliasMap.getOrDefault(COLLECTION_METADATA, Map.of())); colMeta.replaceAll((k, metaMap) -> Collections.unmodifiableMap(metaMap)); return new Aliases(colAliases, colMeta, zNodeVersion); @@ -190,7 +189,7 @@ public Map> getCollectionAliasListMap() { */ public Map getCollectionAliasProperties(String alias) { // Note: map is already unmodifiable; it can be shared safely - return collectionAliasProperties.getOrDefault(alias, Collections.emptyMap()); + return collectionAliasProperties.getOrDefault(alias, Map.of()); } /** @@ -460,7 +459,7 @@ public Aliases cloneWithCollectionAliasProperties(String alias, Map> newColProperties = new LinkedHashMap<>(this.collectionAliasProperties); // clone to modify Map newMetaMap = - new LinkedHashMap<>(newColProperties.getOrDefault(alias, Collections.emptyMap())); + new LinkedHashMap<>(newColProperties.getOrDefault(alias, Map.of())); for (Map.Entry metaEntry : properties.entrySet()) { if (metaEntry.getValue() != null) { newMetaMap.put(metaEntry.getKey(), metaEntry.getValue()); diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java b/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java index 18e93ec7eb6a..ba92c3a9011a 100644 --- a/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java +++ b/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java @@ -217,7 +217,7 @@ public static ClusterState createFromJson( Instant creationTime, DocCollection.PrsSupplier prsSupplier) { if (bytes == null || bytes.length == 0) { - return new ClusterState(liveNodes, Collections.emptyMap()); + return new ClusterState(liveNodes, Map.of()); } @SuppressWarnings({"unchecked"}) Map stateMap = @@ -273,7 +273,7 @@ public static DocCollection collectionFromObjects( // legacy format from 4.0... there was no separate "shards" level to contain the collection // shards. slices = Slice.loadAllFromMap(name, objs); - props = Collections.emptyMap(); + props = Map.of(); } else { slices = Slice.loadAllFromMap(name, sliceObjs); objs.remove(CollectionStateProps.SHARDS); diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/CompositeIdRouter.java b/solr/solrj/src/java/org/apache/solr/common/cloud/CompositeIdRouter.java index c13cc4fedef3..39adeef1a528 100644 --- a/solr/solrj/src/java/org/apache/solr/common/cloud/CompositeIdRouter.java +++ b/solr/solrj/src/java/org/apache/solr/common/cloud/CompositeIdRouter.java @@ -276,7 +276,7 @@ public List partitionRange(int partitions, Range range) { int max = range.max; assert max >= min; - if (partitions == 0) return Collections.emptyList(); + if (partitions == 0) return List.of(); long rangeSize = (long) max - (long) min; long rangeStep = Math.max(1, rangeSize / partitions); diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java b/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java index d3a533b07d09..e9de9453ad0f 100644 --- a/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java +++ b/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java @@ -18,7 +18,6 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; @@ -191,7 +190,7 @@ public List partitionRange(int partitions, Range range, float fuzz) { } else if (fuzz < 0.0f) { fuzz = 0.0f; } - if (partitions == 0) return Collections.emptyList(); + if (partitions == 0) return List.of(); long rangeSize = (long) max - (long) min; long rangeStep = Math.max(1, rangeSize / partitions); long fuzzStep = Math.round(rangeStep * (double) fuzz / 2.0); diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/HashBasedRouter.java b/solr/solrj/src/java/org/apache/solr/common/cloud/HashBasedRouter.java index 0a02c39d8e53..2dd6fae7d486 100644 --- a/solr/solrj/src/java/org/apache/solr/common/cloud/HashBasedRouter.java +++ b/solr/solrj/src/java/org/apache/solr/common/cloud/HashBasedRouter.java @@ -20,6 +20,7 @@ import java.util.Collection; import java.util.Collections; +import java.util.List; import org.apache.solr.common.SolrException; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.params.SolrParams; @@ -93,6 +94,6 @@ public Collection getSearchSlicesSingle( // use the shardKey as an id for plain hashing Slice slice = getTargetSlice(shardKey, null, null, params, collection); - return slice == null ? Collections.emptyList() : Collections.singletonList(slice); + return slice == null ? List.of() : Collections.singletonList(slice); } } diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/PerReplicaStates.java b/solr/solrj/src/java/org/apache/solr/common/cloud/PerReplicaStates.java index 0eb9d68ee0ca..e4ed2e0f0e08 100644 --- a/solr/solrj/src/java/org/apache/solr/common/cloud/PerReplicaStates.java +++ b/solr/solrj/src/java/org/apache/solr/common/cloud/PerReplicaStates.java @@ -22,7 +22,6 @@ import java.io.IOException; import java.lang.invoke.MethodHandles; import java.util.ArrayList; -import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; @@ -256,7 +255,7 @@ private State insert(State duplicate) { /** fetch duplicates entries for this replica */ List getDuplicates() { - if (duplicate == null) return Collections.emptyList(); + if (duplicate == null) return List.of(); List result = new ArrayList<>(); State current = duplicate; while (current != null) { diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/Slice.java b/solr/solrj/src/java/org/apache/solr/common/cloud/Slice.java index 99374dcb7afa..c307a8f9f1c0 100644 --- a/solr/solrj/src/java/org/apache/solr/common/cloud/Slice.java +++ b/solr/solrj/src/java/org/apache/solr/common/cloud/Slice.java @@ -63,7 +63,7 @@ void setPerReplicaStatesRef(AtomicReference perReplicaStatesRe @SuppressWarnings({"unchecked"}) public static Map loadAllFromMap( String collection, Map genericSlices) { - if (genericSlices == null) return Collections.emptyMap(); + if (genericSlices == null) return Map.of(); Map result = CollectionUtil.newLinkedHashMap(genericSlices.size()); for (Map.Entry entry : genericSlices.entrySet()) { String name = entry.getKey(); diff --git a/solr/solrj/src/java/org/apache/solr/common/util/CommandOperation.java b/solr/solrj/src/java/org/apache/solr/common/util/CommandOperation.java index 37498dd4e847..97e45a7e588e 100644 --- a/solr/solrj/src/java/org/apache/solr/common/util/CommandOperation.java +++ b/solr/solrj/src/java/org/apache/solr/common/util/CommandOperation.java @@ -16,7 +16,6 @@ */ package org.apache.solr.common.util; -import static java.util.Collections.emptyMap; import static java.util.Collections.singletonList; import static java.util.Collections.singletonMap; import static org.apache.solr.common.util.StrUtils.formatString; @@ -78,7 +77,7 @@ public Map getDataMap() { StrUtils.formatString( "The command ''{0}'' should have the values as a json object '{'key:val'}' format but is ''{1}''", name, commandData)); - return Collections.emptyMap(); + return Map.of(); } private Object getRootPrimitive() { @@ -182,7 +181,7 @@ public void addError(String s) { /** Get all the values from the metadata for the command without the specified keys */ public Map getValuesExcluding(String... keys) { getMapVal(null); - if (hasError()) return emptyMap(); // just to verify the type is Map + if (hasError()) return Map.of(); // just to verify the type is Map @SuppressWarnings("unchecked") LinkedHashMap cp = new LinkedHashMap<>((Map) commandData); if (keys == null) return cp; @@ -210,7 +209,7 @@ public static List> captureErrors(List ops } public static List parse(Reader rdr) throws IOException { - return parse(rdr, Collections.emptySet()); + return parse(rdr, Set.of()); } /** @@ -322,7 +321,7 @@ public String toString() { public static List readCommands( Iterable streams, @SuppressWarnings({"rawtypes"}) NamedList resp) throws IOException { - return readCommands(streams, resp, Collections.emptySet()); + return readCommands(streams, resp, Set.of()); } /** diff --git a/solr/solrj/src/java/org/apache/solr/common/util/PathTrie.java b/solr/solrj/src/java/org/apache/solr/common/util/PathTrie.java index 21089a9c92af..0fde7c457b26 100644 --- a/solr/solrj/src/java/org/apache/solr/common/util/PathTrie.java +++ b/solr/solrj/src/java/org/apache/solr/common/util/PathTrie.java @@ -17,8 +17,6 @@ package org.apache.solr.common.util; -import static java.util.Collections.emptyList; - import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -32,7 +30,7 @@ */ public class PathTrie { private final Set reserved = new HashSet<>(); - Node root = new Node(emptyList(), null, null); + Node root = new Node(List.of(), null, null); public PathTrie() {} @@ -70,7 +68,7 @@ public static void replaceTemplates(List parts, Map repl // /a/b/c will be returned as ["a","b","c"] public static List getPathSegments(String path) { - if (path == null || path.isEmpty()) return emptyList(); + if (path == null || path.isEmpty()) return List.of(); List parts = new ArrayList<>() { @Override diff --git a/solr/solrj/src/java/org/apache/solr/common/util/StrUtils.java b/solr/solrj/src/java/org/apache/solr/common/util/StrUtils.java index 28723375fe58..f2aaea286718 100644 --- a/solr/solrj/src/java/org/apache/solr/common/util/StrUtils.java +++ b/solr/solrj/src/java/org/apache/solr/common/util/StrUtils.java @@ -23,7 +23,6 @@ import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Locale; import org.apache.solr.common.SolrException; @@ -167,7 +166,7 @@ public static List splitSmart(String s, String separator, boolean decode * @return a list of file names with the escaping backslashes removed */ public static List splitFileNames(String fileNames) { - if (fileNames == null) return Collections.emptyList(); + if (fileNames == null) return List.of(); List result = new ArrayList<>(); for (String file : fileNames.split("(? fun) { if (utf8 == null || utf8.length == 0 || length == 0) { - return Collections.emptyMap(); + return Map.of(); } // convert directly from bytes to chars // and parse directly from that instead of going through diff --git a/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java b/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java index 09fe360cbbe1..ff888a75bb20 100644 --- a/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java +++ b/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java @@ -360,7 +360,7 @@ public int hashCode() { return Objects.hash(delegate); } - public static final ValidatingJsonMap EMPTY = new ValidatingJsonMap(Collections.emptyMap()); + public static final ValidatingJsonMap EMPTY = new ValidatingJsonMap(Map.of()); public interface PredicateWithErrMsg { diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientCacheTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientCacheTest.java index d2a864f4a545..55d170ce6529 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientCacheTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientCacheTest.java @@ -106,7 +106,7 @@ public DocCollection get() { livenodes.addAll(Set.of("192.168.1.108:7574_solr", "192.168.1.108:8983_solr")); ClusterState cs = ClusterState.createFromJson( - 1, COLL1_STATE.getBytes(UTF_8), Collections.emptySet(), Instant.now(), null); + 1, COLL1_STATE.getBytes(UTF_8), Set.of(), Instant.now(), null); refs.put(collName, new Ref(collName)); colls.put(collName, cs.getCollectionOrNull(collName)); responses.put( @@ -346,7 +346,7 @@ public T getClusterProperty(String propertyName, T def) { private DocCollection loadCollection(String collection, int version) throws Exception { ClusterState state = ClusterState.createFromJson( - version, COLL1_STATE.getBytes(UTF_8), Collections.emptySet(), Instant.now(), null); + version, COLL1_STATE.getBytes(UTF_8), Set.of(), Instant.now(), null); return state.getCollectionOrNull(collection); } diff --git a/solr/solrj/src/test/org/apache/solr/common/SolrDocumentTest.java b/solr/solrj/src/test/org/apache/solr/common/SolrDocumentTest.java index e538ff44651f..f184e2ab76b3 100644 --- a/solr/solrj/src/test/org/apache/solr/common/SolrDocumentTest.java +++ b/solr/solrj/src/test/org/apache/solr/common/SolrDocumentTest.java @@ -143,7 +143,7 @@ public void testUnsupportedStuff() { } catch (UnsupportedOperationException ex) { } try { - doc.getFieldValueMap().put("key", Collections.emptyList()); + doc.getFieldValueMap().put("key", List.of()); fail("should be unsupported!"); } catch (UnsupportedOperationException ex) { } diff --git a/solr/solrj/src/test/org/apache/solr/common/util/TestFastJavabinDecoder.java b/solr/solrj/src/test/org/apache/solr/common/util/TestFastJavabinDecoder.java index 43146351656e..14113670ccf8 100644 --- a/solr/solrj/src/test/org/apache/solr/common/util/TestFastJavabinDecoder.java +++ b/solr/solrj/src/test/org/apache/solr/common/util/TestFastJavabinDecoder.java @@ -22,7 +22,6 @@ import java.io.StringWriter; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -234,8 +233,7 @@ public void compare(SolrDocument d) { assertEquals(String.valueOf(subject), String.valueOf(d.getFieldValue("subject"))); assertEquals(String.valueOf(cat), String.valueOf(d.getFieldValue("cat"))); assertEquals( - Objects.requireNonNullElse(d.getChildDocuments(), Collections.emptyList()).size(), - children.size()); + Objects.requireNonNullElse(d.getChildDocuments(), List.of()).size(), children.size()); @SuppressWarnings({"unchecked"}) List l = (List) d.getFieldValue("longs"); if (l != null) { diff --git a/solr/solrj/src/test/org/apache/solr/common/util/TestPathTrie.java b/solr/solrj/src/test/org/apache/solr/common/util/TestPathTrie.java index ad7e9066ad3a..1fbe1bcad143 100644 --- a/solr/solrj/src/test/org/apache/solr/common/util/TestPathTrie.java +++ b/solr/solrj/src/test/org/apache/solr/common/util/TestPathTrie.java @@ -17,12 +17,12 @@ package org.apache.solr.common.util; -import static java.util.Collections.emptyMap; import static java.util.Collections.singletonMap; import static org.apache.solr.api.ApiBag.HANDLER_NAME; import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.apache.solr.SolrTestCaseJ4; @@ -30,12 +30,12 @@ public class TestPathTrie extends SolrTestCaseJ4 { public void testPathTrie() { PathTrie pathTrie = new PathTrie<>(Set.of("_introspect")); - pathTrie.insert("/", emptyMap(), "R"); - pathTrie.insert("/aa", emptyMap(), "d"); - pathTrie.insert("/aa/bb/{cc}/dd", emptyMap(), "a"); + pathTrie.insert("/", Map.of(), "R"); + pathTrie.insert("/aa", Map.of(), "d"); + pathTrie.insert("/aa/bb/{cc}/dd", Map.of(), "a"); pathTrie.insert("/$handlerName/{cc}/dd", singletonMap(HANDLER_NAME, "test"), "test"); - pathTrie.insert("/aa/bb/{cc}/{xx}", emptyMap(), "b"); - pathTrie.insert("/aa/bb", emptyMap(), "c"); + pathTrie.insert("/aa/bb/{cc}/{xx}", Map.of(), "b"); + pathTrie.insert("/aa/bb", Map.of(), "c"); HashMap templateValues = new HashMap<>(); assertEquals("R", pathTrie.lookup("/", templateValues, null)); @@ -54,7 +54,7 @@ public void testPathTrie() { assertEquals(3, subPaths.size()); pathTrie = new PathTrie<>(Set.of("_introspect")); - pathTrie.insert("/aa/bb/{cc}/tt/*", emptyMap(), "W"); + pathTrie.insert("/aa/bb/{cc}/tt/*", Map.of(), "W"); templateValues.clear(); assertEquals("W", pathTrie.lookup("/aa/bb/somepart/tt/hello", templateValues)); @@ -68,7 +68,7 @@ public void testPathTrie() { assertEquals("W", pathTrie.lookup("/aa/bb/somepart/tt/hello/world/from/solr", templateValues)); assertEquals(templateValues.get("*"), "/hello/world/from/solr"); - pathTrie.insert("/1/2/{x}/4", emptyMap(), "a"); + pathTrie.insert("/1/2/{x}/4", Map.of(), "a"); assertEquals("a", pathTrie.lookup("/1/2/3/4", null)); templateValues.clear(); assertEquals("a", pathTrie.lookup("/1/2/3/4", templateValues)); diff --git a/solr/test-framework/src/java/org/apache/solr/handler/component/TrackingShardHandlerFactory.java b/solr/test-framework/src/java/org/apache/solr/handler/component/TrackingShardHandlerFactory.java index cfafc590cd1a..7dfd7ce9e186 100644 --- a/solr/test-framework/src/java/org/apache/solr/handler/component/TrackingShardHandlerFactory.java +++ b/solr/test-framework/src/java/org/apache/solr/handler/component/TrackingShardHandlerFactory.java @@ -18,7 +18,6 @@ import java.util.ArrayDeque; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Queue; @@ -277,7 +276,7 @@ public List getShardRequests( } } } - return Collections.emptyList(); + return List.of(); } /**