Merge pull request #19837
Ensure PutMappingRequest.buildFromSimplifiedDef input are pairs
This commit is contained in:
commit
37c433aace
|
@ -177,7 +177,17 @@ public class PutMappingRequest extends AcknowledgedRequest<PutMappingRequest> im
|
||||||
return source(buildFromSimplifiedDef(type, source));
|
return source(buildFromSimplifiedDef(type, source));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param type the mapping type
|
||||||
|
* @param source consisting of field/properties pairs (e.g. "field1",
|
||||||
|
* "type=string,store=true"). If the number of arguments is not
|
||||||
|
* divisible by two an {@link IllegalArgumentException} is thrown
|
||||||
|
* @return the mappings definition
|
||||||
|
*/
|
||||||
public static XContentBuilder buildFromSimplifiedDef(String type, Object... source) {
|
public static XContentBuilder buildFromSimplifiedDef(String type, Object... source) {
|
||||||
|
if (source.length % 2 != 0) {
|
||||||
|
throw new IllegalArgumentException("mapping source must be pairs of fieldnames and properties definition.");
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
XContentBuilder builder = XContentFactory.jsonBuilder();
|
XContentBuilder builder = XContentFactory.jsonBuilder();
|
||||||
builder.startObject();
|
builder.startObject();
|
||||||
|
|
|
@ -57,4 +57,11 @@ public class PutMappingRequestTests extends ESTestCase {
|
||||||
"Validation Failed: 1: either concrete index or unresolved indices can be set," +
|
"Validation Failed: 1: either concrete index or unresolved indices can be set," +
|
||||||
" concrete index: [[foo/bar]] and indices: [myindex];");
|
" concrete index: [[foo/bar]] and indices: [myindex];");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testBuildFromSimplifiedDef() {
|
||||||
|
// test that method rejects input where input varargs fieldname/properites are not paired correctly
|
||||||
|
IllegalArgumentException e = expectThrows(IllegalArgumentException.class,
|
||||||
|
() -> PutMappingRequest.buildFromSimplifiedDef("type", "only_field"));
|
||||||
|
assertEquals("mapping source must be pairs of fieldnames and properties definition.", e.getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue