diff --git a/docs/changelog/130521.yaml b/docs/changelog/130521.yaml new file mode 100644 index 000000000000..e5308ea8dc13 --- /dev/null +++ b/docs/changelog/130521.yaml @@ -0,0 +1,5 @@ +pr: 130521 +summary: Trim to size lists created in source fetchers +area: Search +type: bug +issues: [] diff --git a/server/src/main/java/org/elasticsearch/index/mapper/ArraySourceValueFetcher.java b/server/src/main/java/org/elasticsearch/index/mapper/ArraySourceValueFetcher.java index 6c9c88f76761..fa835e435666 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/ArraySourceValueFetcher.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/ArraySourceValueFetcher.java @@ -56,7 +56,7 @@ public abstract class ArraySourceValueFetcher implements ValueFetcher { @Override public List fetchValues(Source source, int doc, List ignoredValues) { - List values = new ArrayList<>(); + ArrayList values = new ArrayList<>(); for (String path : sourcePaths) { Object sourceValue = source.extractValue(path, nullValue); if (sourceValue == null) { @@ -70,6 +70,7 @@ public abstract class ArraySourceValueFetcher implements ValueFetcher { ignoredValues.add(sourceValue); } } + values.trimToSize(); return values; } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/NestedValueFetcher.java b/server/src/main/java/org/elasticsearch/index/mapper/NestedValueFetcher.java index df9e348dc9fb..008bbdbd0005 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/NestedValueFetcher.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/NestedValueFetcher.java @@ -42,7 +42,7 @@ public class NestedValueFetcher implements ValueFetcher { @Override public List fetchValues(Source source, int doc, List includedValues) throws IOException { - List nestedEntriesToReturn = new ArrayList<>(); + ArrayList nestedEntriesToReturn = new ArrayList<>(); Map filteredSource = new HashMap<>(); Map stub = createSourceMapStub(filteredSource); List nestedValues = XContentMapValues.extractNestedSources(nestedFieldPath, source.source()); @@ -69,6 +69,7 @@ public class NestedValueFetcher implements ValueFetcher { nestedEntriesToReturn.add(nestedEntry); } } + nestedEntriesToReturn.trimToSize(); return nestedEntriesToReturn; } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/SourceValueFetcher.java b/server/src/main/java/org/elasticsearch/index/mapper/SourceValueFetcher.java index a65a3cd01795..7d1e722200ba 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/SourceValueFetcher.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/SourceValueFetcher.java @@ -55,7 +55,7 @@ public abstract class SourceValueFetcher implements ValueFetcher { @Override public List fetchValues(Source source, int doc, List ignoredValues) { - List values = new ArrayList<>(); + ArrayList values = new ArrayList<>(); for (String path : sourcePaths) { Object sourceValue = source.extractValue(path, nullValue); if (sourceValue == null) { @@ -92,6 +92,7 @@ public abstract class SourceValueFetcher implements ValueFetcher { } } } + values.trimToSize(); return values; }