summaryrefslogtreecommitdiff
path: root/modules/lang-mustache/src/main
diff options
context:
space:
mode:
authorAlex Benusovich <qwerty4030@gmail.com>2017-06-05 08:08:14 -0700
committerJay Modi <jaymode@users.noreply.github.com>2017-06-05 09:08:14 -0600
commit5463294ec4bf3c6d22532840c3c2fd28a1f035bc (patch)
treefdbc2bca09a9f67ac19c94dc7b0f200a78db2c6d /modules/lang-mustache/src/main
parent73307a2144fbdf63c551eeccdc7e93dc30e59a92 (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')
-rw-r--r--modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestMultiSearchTemplateAction.java4
-rw-r--r--modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestPutSearchTemplateAction.java2
-rw-r--r--modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestSearchTemplateAction.java4
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);