Skip to content

Commit d447ab0

Browse files
Pass failures back correctly
1 parent 6da2eca commit d447ab0

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

server/src/internalClusterTest/java/org/elasticsearch/indices/cluster/RemoteFieldCapsForceConnectTimeoutIT.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.elasticsearch.test.AbstractMultiClustersTestCase;
2020
import org.elasticsearch.test.transport.MockTransportService;
2121
import org.elasticsearch.transport.TransportService;
22+
import org.hamcrest.Matchers;
2223

2324
import java.util.Collection;
2425
import java.util.List;
@@ -73,7 +74,7 @@ public void testTimeoutSetting() {
7374
MockTransportService mts = (MockTransportService) cluster(LOCAL_CLUSTER).getInstance(TransportService.class, nodeName);
7475

7576
mts.addConnectBehavior(
76-
cluster(REMOTE_CLUSTER_1).getInstance(TransportService.class, randomFrom(cluster(REMOTE_CLUSTER_1).getNodeNames())),
77+
cluster(REMOTE_CLUSTER_1).getInstance(TransportService.class, cluster(REMOTE_CLUSTER_1).getNodeNames()[0]),
7778
((transport, discoveryNode, profile, listener) -> {
7879
try {
7980
latch.await();
@@ -105,6 +106,11 @@ public void testTimeoutSetting() {
105106
fieldCapsRequest.fields("foo", "bar", "baz");
106107
var result = safeGet(client().execute(TransportFieldCapabilitiesAction.TYPE, fieldCapsRequest));
107108

109+
var failures = result.getFailures();
110+
assertThat(failures.size(), Matchers.is(1));
111+
var message = result.getFailures().getFirst().getException().toString();
112+
assertThat(message, Matchers.containsString("org.elasticsearch.ElasticsearchTimeoutException: timed out after [1s/1000ms]"));
113+
108114
latch.countDown();
109115
result.decRef();
110116
}

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

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -398,13 +398,7 @@ private static void mergeIndexResponses(
398398
listener.onResponse(new FieldCapabilitiesResponse(new ArrayList<>(indexResponses.values()), failures));
399399
}
400400
} else {
401-
// we have no responses at all, maybe because of errors
402-
if (indexFailures.isEmpty() == false) {
403-
// throw back the first exception
404-
listener.onFailure(failures.get(0).getException());
405-
} else {
406-
listener.onResponse(new FieldCapabilitiesResponse(Collections.emptyList(), Collections.emptyList()));
407-
}
401+
listener.onResponse(new FieldCapabilitiesResponse(Collections.emptyList(), failures));
408402
}
409403
}
410404

0 commit comments

Comments
 (0)