Skip to content

Commit 57637e6

Browse files
committed
Fix msearch request parsing when index expression is null (#130776)
* Fix parsing when index expression is null
1 parent 5f6312e commit 57637e6

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

docs/changelog/130776.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pr: 130776
2+
summary: Fix msearch request parsing when index expression is null
3+
area: Search
4+
type: bug
5+
issues:
6+
- 129631

server/src/main/java/org/elasticsearch/common/xcontent/support/XContentMapValues.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,9 @@ public static Map<String, Object> nodeMapValue(Object node, String desc) {
560560
* Otherwise the node is treated as a comma-separated string.
561561
*/
562562
public static String[] nodeStringArrayValue(Object node) {
563+
if (node == null) {
564+
throw new ElasticsearchParseException("Expected a list of strings but got null");
565+
}
563566
if (isArray(node)) {
564567
List<?> list = (List<?>) node;
565568
String[] arr = new String[list.size()];

server/src/test/java/org/elasticsearch/action/search/MultiSearchRequestTests.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
package org.elasticsearch.action.search;
1111

12+
import org.elasticsearch.ElasticsearchParseException;
1213
import org.elasticsearch.action.support.IndicesOptions;
1314
import org.elasticsearch.common.CheckedBiConsumer;
1415
import org.elasticsearch.common.Strings;
@@ -537,6 +538,14 @@ public void testFailOnExtraCharacters() throws IOException {
537538
}
538539
}
539540

541+
public void testNullIndex() throws IOException {
542+
ElasticsearchParseException e = expectThrows(ElasticsearchParseException.class, () -> parseMultiSearchRequestFromString("""
543+
{"index": null}
544+
{ "query": {"match_all": {}}}
545+
"""));
546+
assertThat(e.getMessage(), containsString("Expected a list of strings but got null"));
547+
}
548+
540549
private static MultiSearchRequest mutate(MultiSearchRequest searchRequest) throws IOException {
541550
MultiSearchRequest mutation = copyRequest(searchRequest);
542551
List<CheckedRunnable<IOException>> mutators = new ArrayList<>();

0 commit comments

Comments
 (0)