Skip to content

Commit f98e8ea

Browse files
authored
Fix serialization of nested aggregates under SingleBucketAggregateBase (#1350) (#1352)
* Add failing test Signed-off-by: Thomas Farr <[email protected]> * Fix Signed-off-by: Thomas Farr <[email protected]> --------- Signed-off-by: Thomas Farr <[email protected]> (cherry picked from commit 29381c0)
1 parent 29dc4c1 commit f98e8ea

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
2222
- Fixed an issue where `FieldSort` was not implementing `SortOptionsVariant` ([#1323](https://github.com/opensearch-project/opensearch-java/pull/1323))
2323
- Fixed `CreateSnapshotResponse` deserialization when wait_for_completion is false ([#1332](https://github.com/opensearch-project/opensearch-java/pull/1332))
2424
- Fixed `GetSnapshotResponse` deserialization ([#1299](https://github.com/opensearch-project/opensearch-java/pull/1299))
25+
- Fixed serialization of nested aggregates under `SingleBucketAggregateBase` ([#1350](https://github.com/opensearch-project/opensearch-java/pull/1350))
2526

2627
### Security
2728

java-client/src/main/java/org/opensearch/client/opensearch/_types/aggregations/SingleBucketAggregateBase.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import java.util.Map;
3838
import java.util.function.Function;
3939
import javax.annotation.Nullable;
40+
import org.opensearch.client.json.ExternallyTaggedUnion;
4041
import org.opensearch.client.json.JsonpDeserializer;
4142
import org.opensearch.client.json.JsonpMapper;
4243
import org.opensearch.client.json.ObjectDeserializer;
@@ -71,8 +72,10 @@ public final long docCount() {
7172
}
7273

7374
protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
74-
7575
super.serializeInternal(generator, mapper);
76+
77+
ExternallyTaggedUnion.serializeTypedKeysInner(this.aggregations, generator, mapper);
78+
7679
generator.writeKey("doc_count");
7780
generator.write(this.docCount);
7881

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
*
4+
* The OpenSearch Contributors require contributions made to
5+
* this file be licensed under the Apache-2.0 license or a
6+
* compatible open source license.
7+
*/
8+
9+
package org.opensearch.client.opensearch._types.aggregations;
10+
11+
import org.junit.Test;
12+
import org.opensearch.client.opensearch.model.ModelTestCase;
13+
14+
public class FilterAggregateTest extends ModelTestCase {
15+
@Test
16+
public void serializesNestedAggregates() {
17+
String json = "{\"sum#l2_result\":{\"value\":1.0},\"doc_count\":1}";
18+
FilterAggregate aggregate = fromJson(json, FilterAggregate._DESERIALIZER);
19+
assertEquals(json, toJson(aggregate));
20+
}
21+
}

0 commit comments

Comments
 (0)