diff options
author | Alex Benusovich <qwerty4030@gmail.com> | 2017-06-05 08:08:14 -0700 |
---|---|---|
committer | Jay Modi <jaymode@users.noreply.github.com> | 2017-06-05 09:08:14 -0600 |
commit | 5463294ec4bf3c6d22532840c3c2fd28a1f035bc (patch) | |
tree | fdbc2bca09a9f67ac19c94dc7b0f200a78db2c6d /modules/lang-mustache/src/main | |
parent | 73307a2144fbdf63c551eeccdc7e93dc30e59a92 (diff) |
Fixed NPEs caused by requests without content. (#23497)
REST handlers that require a body will throw an an ElasticsearchParseException "request body required".
REST handlers that require a body OR source param will throw an ElasticsearchParseException "request body or source param required".
Replaced asserts in BulkRequest parsing code with a more descriptive IllegalArgumentException if the line contains an empty object.
Updated bulk REST test to verify an empty action line is rejected properly.
Updated BulkRequestTests with randomized testing for an empty action line.
Used try-with-resouces for XContentParser in AbstractBulkByQueryRestHandler.
Diffstat (limited to 'modules/lang-mustache/src/main')
3 files changed, 1 insertions, 9 deletions
diff --git a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestMultiSearchTemplateAction.java b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestMultiSearchTemplateAction.java index c730305747..f129a5b15e 100644 --- a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestMultiSearchTemplateAction.java +++ b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestMultiSearchTemplateAction.java @@ -62,10 +62,6 @@ public class RestMultiSearchTemplateAction extends BaseRestHandler { @Override public RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException { - if (request.hasContentOrSourceParam() == false) { - throw new ElasticsearchException("request body is required"); - } - MultiSearchTemplateRequest multiRequest = parseRequest(request, allowExplicitIndex); return channel -> client.execute(MultiSearchTemplateAction.INSTANCE, multiRequest, new RestToXContentListener<>(channel)); } diff --git a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestPutSearchTemplateAction.java b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestPutSearchTemplateAction.java index 751e58aeeb..9a6c5f7f09 100644 --- a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestPutSearchTemplateAction.java +++ b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestPutSearchTemplateAction.java @@ -51,7 +51,7 @@ public class RestPutSearchTemplateAction extends BaseRestHandler { @Override public RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException { String id = request.param("id"); - BytesReference content = request.content(); + BytesReference content = request.requiredContent(); PutStoredScriptRequest put = new PutStoredScriptRequest(id, Script.DEFAULT_TEMPLATE_LANG, TemplateScript.CONTEXT.name, content, request.getXContentType()); diff --git a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestSearchTemplateAction.java b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestSearchTemplateAction.java index ed1e0d6f1d..cb40b3f91f 100644 --- a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestSearchTemplateAction.java +++ b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestSearchTemplateAction.java @@ -92,10 +92,6 @@ public class RestSearchTemplateAction extends BaseRestHandler { @Override public RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException { - if (request.hasContentOrSourceParam() == false) { - throw new ElasticsearchException("request body is required"); - } - // Creates the search request with all required params SearchRequest searchRequest = new SearchRequest(); RestSearchAction.parseSearchRequest(searchRequest, request, null); |