Skip to content

Commit fa4e950

Browse files
authored
Deduplicate non-empty InternalAggregation metadata when deserializing (#116589)
1 parent eb6d47f commit fa4e950

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

server/src/main/java/org/elasticsearch/search/aggregations/InternalAggregation.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
*/
3636
public abstract class InternalAggregation implements Aggregation, NamedWriteable {
3737
protected final String name;
38-
3938
protected final Map<String, Object> metadata;
4039

4140
/**
@@ -53,12 +52,14 @@ protected InternalAggregation(String name, Map<String, Object> metadata) {
5352
*/
5453
protected InternalAggregation(StreamInput in) throws IOException {
5554
final String name = in.readString();
55+
final Map<String, Object> metadata = in.readGenericMap();
5656
if (in instanceof DelayableWriteable.Deduplicator d) {
5757
this.name = d.deduplicate(name);
58+
this.metadata = metadata == null || metadata.isEmpty() ? metadata : d.deduplicate(metadata);
5859
} else {
5960
this.name = name;
61+
this.metadata = metadata;
6062
}
61-
metadata = in.readGenericMap();
6263
}
6364

6465
@Override

0 commit comments

Comments
 (0)