Skip to content

Commit a605160

Browse files
committed
apply review comments
1 parent 749bba7 commit a605160

File tree

4 files changed

+51
-22
lines changed

4 files changed

+51
-22
lines changed

server/src/main/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesAction.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121

2222
import org.elasticsearch.action.Action;
2323

24+
import java.util.Collections;
25+
2426
public class FieldCapabilitiesAction extends Action<FieldCapabilitiesResponse> {
2527

2628
public static final FieldCapabilitiesAction INSTANCE = new FieldCapabilitiesAction();
@@ -32,6 +34,6 @@ private FieldCapabilitiesAction() {
3234

3335
@Override
3436
public FieldCapabilitiesResponse newResponse() {
35-
return new FieldCapabilitiesResponse();
37+
return new FieldCapabilitiesResponse(Collections.emptyMap());
3638
}
3739
}

server/src/main/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesResponse.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import java.util.HashMap;
3636
import java.util.List;
3737
import java.util.Map;
38+
import java.util.Objects;
3839
import java.util.stream.Collectors;
3940

4041
/**
@@ -56,16 +57,15 @@ public class FieldCapabilitiesResponse extends ActionResponse implements ToXCont
5657

5758
private FieldCapabilitiesResponse(Map<String, Map<String, FieldCapabilities>> responseMap,
5859
List<FieldCapabilitiesIndexResponse> indexResponses) {
59-
this.responseMap = responseMap;
60-
this.indexResponses = indexResponses;
60+
this.responseMap = Objects.requireNonNull(responseMap);
61+
this.indexResponses = Objects.requireNonNull(indexResponses);
6162
}
6263

6364
/**
6465
* Used for serialization
6566
*/
6667
FieldCapabilitiesResponse() {
67-
this.responseMap = Collections.emptyMap();
68-
this.indexResponses = Collections.emptyList();
68+
this(Collections.emptyMap(), Collections.emptyList());
6969
}
7070

7171
/**
@@ -82,6 +82,7 @@ public Map<String, Map<String, FieldCapabilities>> get() {
8282
List<FieldCapabilitiesIndexResponse> getIndexResponses() {
8383
return indexResponses;
8484
}
85+
8586
/**
8687
*
8788
* Get the field capabilities per type for the provided {@code field}.

server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesResponseTests.java

Lines changed: 43 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,15 @@
2828
import org.elasticsearch.test.AbstractStreamableXContentTestCase;
2929

3030
import java.io.IOException;
31+
import java.util.ArrayList;
3132
import java.util.Collections;
3233
import java.util.HashMap;
34+
import java.util.List;
3335
import java.util.Map;
3436
import java.util.function.Predicate;
3537

38+
import static com.carrotsearch.randomizedtesting.RandomizedTest.randomAsciiLettersOfLength;
39+
3640

3741
public class FieldCapabilitiesResponseTests extends AbstractStreamableXContentTestCase<FieldCapabilitiesResponse> {
3842

@@ -48,22 +52,46 @@ protected FieldCapabilitiesResponse createBlankInstance() {
4852

4953
@Override
5054
protected FieldCapabilitiesResponse createTestInstance() {
51-
Map<String, Map<String, FieldCapabilities>> responses = new HashMap<>();
55+
if (randomBoolean()) {
56+
// merged responses
57+
Map<String, Map<String, FieldCapabilities>> responses = new HashMap<>();
58+
59+
String[] fields = generateRandomStringArray(5, 10, false, true);
60+
assertNotNull(fields);
61+
62+
for (String field : fields) {
63+
Map<String, FieldCapabilities> typesToCapabilities = new HashMap<>();
64+
String[] types = generateRandomStringArray(5, 10, false, false);
65+
assertNotNull(types);
66+
67+
for (String type : types) {
68+
typesToCapabilities.put(type, FieldCapabilitiesTests.randomFieldCaps(field));
69+
}
70+
responses.put(field, typesToCapabilities);
71+
}
72+
return new FieldCapabilitiesResponse(responses);
73+
} else {
74+
// non-merged responses
75+
List<FieldCapabilitiesIndexResponse> responses = new ArrayList<>();
76+
int numResponse = randomIntBetween(0, 10);
77+
for (int i = 0; i < numResponse; i++) {
78+
responses.add(createRandomIndexResponse());
79+
}
80+
return new FieldCapabilitiesResponse(responses);
81+
}
82+
}
83+
84+
85+
private FieldCapabilitiesIndexResponse createRandomIndexResponse() {
86+
Map<String, FieldCapabilities> responses = new HashMap<>();
5287

5388
String[] fields = generateRandomStringArray(5, 10, false, true);
5489
assertNotNull(fields);
5590

5691
for (String field : fields) {
57-
Map<String, FieldCapabilities> typesToCapabilities = new HashMap<>();
58-
String[] types = generateRandomStringArray(5, 10, false, false);
59-
assertNotNull(types);
60-
61-
for (String type : types) {
62-
typesToCapabilities.put(type, FieldCapabilitiesTests.randomFieldCaps(field));
63-
}
64-
responses.put(field, typesToCapabilities);
92+
responses.put(field, FieldCapabilitiesTests.randomFieldCaps(field));
6593
}
66-
return new FieldCapabilitiesResponse(responses);
94+
return new FieldCapabilitiesIndexResponse(randomAsciiLettersOfLength(10), responses);
6795
}
6896

6997
@Override
@@ -138,6 +166,11 @@ public void testToXContent() throws IOException {
138166
"}").replaceAll("\\s+", ""), generatedResponse);
139167
}
140168

169+
public void testEmptyResponse() throws IOException {
170+
FieldCapabilitiesResponse testInstance = new FieldCapabilitiesResponse();
171+
assertSerialization(testInstance);
172+
}
173+
141174
private static FieldCapabilitiesResponse createSimpleResponse() {
142175
Map<String, FieldCapabilities> titleCapabilities = new HashMap<>();
143176
titleCapabilities.put("text", new FieldCapabilities("title", "text", true, false));

server/src/test/java/org/elasticsearch/search/fieldcaps/FieldCapabilitiesIT.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -148,11 +148,4 @@ public void testFieldAliasFilteringWithWildcard() {
148148
assertEquals(1, response.get().size());
149149
assertTrue(response.get().containsKey("distance"));
150150
}
151-
152-
public void testEmptyIndexPattern() {
153-
FieldCapabilitiesResponse response = client().prepareFieldCaps("empty_index_pattern*")
154-
.setFields("*")
155-
.execute().actionGet();
156-
assertEquals(0, response.get().size());
157-
}
158151
}

0 commit comments

Comments
 (0)