Fixed bug (NPE) in mpercolate api, defaults from percolating existing documents where also applied for the regular percolate api, these defaults were none existing (null).
This commit is contained in:
parent
65fc90728e
commit
d660b18298
|
@ -199,6 +199,20 @@ public class MultiPercolateRequest extends ActionRequest<MultiPercolateRequest>
|
||||||
percolateRequest.ignoreIndices(IgnoreIndices.fromString((String) value));
|
percolateRequest.ignoreIndices(IgnoreIndices.fromString((String) value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Setting values based on get request, if needed...
|
||||||
|
if ((percolateRequest.indices() == null || percolateRequest.indices().length == 0) && getRequest.index() != null) {
|
||||||
|
percolateRequest.indices(getRequest.index());
|
||||||
|
}
|
||||||
|
if (percolateRequest.documentType() == null && getRequest.type() != null) {
|
||||||
|
percolateRequest.documentType(getRequest.type());
|
||||||
|
}
|
||||||
|
if (percolateRequest.routing() == null && getRequest.routing() != null) {
|
||||||
|
percolateRequest.routing(getRequest.routing());
|
||||||
|
}
|
||||||
|
if (percolateRequest.preference() == null && getRequest.preference() != null) {
|
||||||
|
percolateRequest.preference(getRequest.preference());
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
for (Map.Entry<String, Object> entry : header.entrySet()) {
|
for (Map.Entry<String, Object> entry : header.entrySet()) {
|
||||||
Object value = entry.getValue();
|
Object value = entry.getValue();
|
||||||
|
@ -219,20 +233,6 @@ public class MultiPercolateRequest extends ActionRequest<MultiPercolateRequest>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setting defaults, if needed...
|
|
||||||
if ((percolateRequest.indices() == null || percolateRequest.indices().length == 0) && percolateRequest.getRequest().index() != null) {
|
|
||||||
percolateRequest.indices(percolateRequest.getRequest().index());
|
|
||||||
}
|
|
||||||
if (percolateRequest.documentType() == null && percolateRequest.getRequest().type() != null) {
|
|
||||||
percolateRequest.documentType(percolateRequest.getRequest().type());
|
|
||||||
}
|
|
||||||
if (percolateRequest.routing() == null && percolateRequest.getRequest().routing() != null) {
|
|
||||||
percolateRequest.routing(percolateRequest.getRequest().routing());
|
|
||||||
}
|
|
||||||
if (percolateRequest.preference() == null && percolateRequest.getRequest().preference() != null) {
|
|
||||||
percolateRequest.preference(percolateRequest.getRequest().preference());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String[] parseArray(XContentParser parser) throws IOException {
|
private String[] parseArray(XContentParser parser) throws IOException {
|
||||||
|
|
|
@ -125,7 +125,7 @@ public class MultiPercolatorRequestTests extends ElasticsearchTestCase {
|
||||||
request.indices("my-index1").documentType("my-type1").ignoreIndices(IgnoreIndices.MISSING);
|
request.indices("my-index1").documentType("my-type1").ignoreIndices(IgnoreIndices.MISSING);
|
||||||
request.add(data, 0, data.length, false);
|
request.add(data, 0, data.length, false);
|
||||||
|
|
||||||
assertThat(request.requests().size(), equalTo(2));
|
assertThat(request.requests().size(), equalTo(3));
|
||||||
PercolateRequest percolateRequest = request.requests().get(0);
|
PercolateRequest percolateRequest = request.requests().get(0);
|
||||||
assertThat(percolateRequest.indices()[0], equalTo("my-index1"));
|
assertThat(percolateRequest.indices()[0], equalTo("my-index1"));
|
||||||
assertThat(percolateRequest.documentType(), equalTo("my-type1"));
|
assertThat(percolateRequest.documentType(), equalTo("my-type1"));
|
||||||
|
@ -149,6 +149,16 @@ public class MultiPercolatorRequestTests extends ElasticsearchTestCase {
|
||||||
assertThat(percolateRequest.source(), notNullValue());
|
assertThat(percolateRequest.source(), notNullValue());
|
||||||
sourceMap = XContentFactory.xContent(percolateRequest.source()).createParser(percolateRequest.source()).map();
|
sourceMap = XContentFactory.xContent(percolateRequest.source()).createParser(percolateRequest.source()).map();
|
||||||
assertThat(sourceMap.get("doc"), equalTo((Object)MapBuilder.newMapBuilder().put("field1", "value2").map()));
|
assertThat(sourceMap.get("doc"), equalTo((Object)MapBuilder.newMapBuilder().put("field1", "value2").map()));
|
||||||
|
|
||||||
|
percolateRequest = request.requests().get(2);
|
||||||
|
assertThat(percolateRequest.indices()[0], equalTo("my-index1"));
|
||||||
|
assertThat(percolateRequest.documentType(), equalTo("my-type1"));
|
||||||
|
assertThat(percolateRequest.ignoreIndices(), equalTo(IgnoreIndices.MISSING));
|
||||||
|
assertThat(percolateRequest.onlyCount(), equalTo(false));
|
||||||
|
assertThat(percolateRequest.getRequest(), nullValue());
|
||||||
|
assertThat(percolateRequest.source(), notNullValue());
|
||||||
|
sourceMap = XContentFactory.xContent(percolateRequest.source()).createParser(percolateRequest.source()).map();
|
||||||
|
assertThat(sourceMap.get("doc"), equalTo((Object)MapBuilder.newMapBuilder().put("field1", "value3").map()));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,3 +2,5 @@
|
||||||
{"doc" : {"field1" : "value1"}}
|
{"doc" : {"field1" : "value1"}}
|
||||||
{"percolate" : {"index" : "my-index1", "type" : "my-type1", "routing" : "my-routing-1", "preference" : "_local", "ignore_indices" : "missing"}}
|
{"percolate" : {"index" : "my-index1", "type" : "my-type1", "routing" : "my-routing-1", "preference" : "_local", "ignore_indices" : "missing"}}
|
||||||
{"doc" : {"field1" : "value2"}}
|
{"doc" : {"field1" : "value2"}}
|
||||||
|
{"percolate" : {}}
|
||||||
|
{"doc" : {"field1" : "value3"}}
|
||||||
|
|
Loading…
Reference in New Issue