Skip to content

Commit 56037c2

Browse files
authored
Fix double array for sub_searches in toXContent (#96963)
This fixes two bugs: * toXContent was writing two arrays instead of one array for sub_searches as part of SearchSourceBuilder * Removes sub_searches from ShardSearchRequestTests.setForceSyntheticSource Closes #96896 Closes #96910
1 parent 3d11f42 commit 56037c2

File tree

3 files changed

+5
-3
lines changed

3 files changed

+5
-3
lines changed

server/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1616,7 +1616,7 @@ public XContentBuilder innerToXContent(XContentBuilder builder, Params params) t
16161616
if (subSearchSourceBuilders.size() == 1) {
16171617
builder.field(QUERY_FIELD.getPreferredName(), subSearchSourceBuilders.get(0).getQueryBuilder());
16181618
} else {
1619-
builder.array(SUB_SEARCHES_FIELD.getPreferredName(), subSearchSourceBuilders);
1619+
builder.xContentList(SUB_SEARCHES_FIELD.getPreferredName(), subSearchSourceBuilders);
16201620
}
16211621
}
16221622

server/src/test/java/org/elasticsearch/action/get/MultiGetShardRequestTests.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ protected MultiGetShardRequest mutateInstance(MultiGetShardRequest instance) thr
9999
}
100100
}
101101

102-
@AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/96910")
103102
public void testForceSyntheticUnsupported() {
104103
MultiGetShardRequest request = createTestInstance(true);
105104
StreamOutput out = new BytesStreamOutput();

server/src/test/java/org/elasticsearch/search/internal/ShardSearchRequestTests.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040

4141
import java.io.IOException;
4242
import java.io.InputStream;
43+
import java.util.ArrayList;
4344
import java.util.List;
4445
import java.util.Optional;
4546
import java.util.concurrent.atomic.AtomicBoolean;
@@ -257,11 +258,13 @@ public void testWillCallRequestCacheKeyDifferentiators() throws IOException {
257258
assertThat(invoked.get(), is(true));
258259
}
259260

260-
@AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/96910")
261261
public void testForceSyntheticUnsupported() throws IOException {
262262
SearchRequest request = createSearchRequest();
263263
if (request.source() != null) {
264264
request.source().rankBuilder(null);
265+
if (request.source().subSearches().size() >= 2) {
266+
request.source().subSearches(new ArrayList<>());
267+
}
265268
}
266269
request.setForceSyntheticSource(true);
267270
ShardSearchRequest shardRequest = createShardSearchReqest(request);

0 commit comments

Comments
 (0)