**Build scan:**
https://gradle-enterprise.elastic.co/s/efva2osgphkle/tests/:plugins:mapper-size:internalClusterTest/org.elasticsearch.index.mapper.size.SizeMappingIT/testGetWithFields

**Reproduction line:**
`./gradlew ':plugins:mapper-size:internalClusterTest' --tests "org.elasticsearch.index.mapper.size.SizeMappingIT.testGetWithFields" -Dtests.seed=FA954CBDA791C93D -Dtests.locale=en-GB -Dtests.timezone=Canada/Saskatchewan -Druntime.java=17`

**Applicable branches:**
main

**Reproduces locally?:**
Didn't try

**Failure history:**
https://gradle-enterprise.elastic.co/scans/tests?tests.container=org.elasticsearch.index.mapper.size.SizeMappingIT&tests.test=testGetWithFields

**Failure excerpt:**
```
java.lang.Exception: Test abandoned because suite timeout was reached.

  at __randomizedtesting.SeedInfo.seed([FA954CBDA791C93D]:0)

```
server/src/main/java/org/elasticsearch/search/fetch/subphase/FetchFieldsPhase.java
/*
 * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
 * or more contributor license agreements. Licensed under the Elastic License
 * 2.0 and the Server Side Public License, v 1; you may not use this file except
 * in compliance with, at your election, the Elastic License 2.0 or the Server
 * Side Public License, v 1.
 */
package org.elasticsearch.search.fetch.subphase;
import org.apache.lucene.index.LeafReaderContext;
import org.elasticsearch.common.document.DocumentField;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.fetch.FetchContext;
import org.elasticsearch.search.fetch.FetchSubPhase;
import org.elasticsearch.search.fetch.FetchSubPhaseProcessor;
import java.io.IOException;
import java.util.Map;
/**
 * A fetch sub-phase for high-level field retrieval. Given a list of fields, it
 * retrieves the field values through the relevant {@link org.elasticsearch.index.mapper.ValueFetcher}
 * and returns them as document fields.
 */
public final class FetchFieldsPhase implements FetchSubPhase {