diff --git a/docs/changelog/130521.yaml b/docs/changelog/130521.yaml new file mode 100644 index 0000000000000..e5308ea8dc134 --- /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 6c9c88f767617..fa835e4356667 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 ArraySourceValueFetcher(Set sourcePaths, Object nullValue) { @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 List fetchValues(Source source, int doc, List ignoredValu 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 df9e348dc9fbc..008bbdbd0005b 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 NestedValueFetcher(String nestedField, FieldFetcher nestedFieldFetcher) { @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 List fetchValues(Source source, int doc, List includedVal 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 a65a3cd017954..7d1e722200ba3 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 SourceValueFetcher(Set sourcePaths, Object nullValue) { @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 List fetchValues(Source source, int doc, List ignoredValu } } } + values.trimToSize(); return values; }