|
@@ -37,6 +37,7 @@ import org.junit.Test;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.util.concurrent.CountDownLatch;
|
|
|
+import java.util.concurrent.Semaphore;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
|
|
@@ -65,9 +66,15 @@ public abstract class AbstractSimpleTransportTests extends ElasticsearchTestCase
|
|
|
public void setUp() throws Exception {
|
|
|
super.setUp();
|
|
|
threadPool = new ThreadPool(getClass().getName());
|
|
|
- serviceA = build(ImmutableSettings.builder().put("name", "TS_A").build(), version0);
|
|
|
+ serviceA = build(
|
|
|
+ ImmutableSettings.builder().put("name", "TS_A", TransportService.SETTING_TRACE_LOG_INCLUDE, "", TransportService.SETTING_TRACE_LOG_EXCLUDE, "NOTHING").build(),
|
|
|
+ version0
|
|
|
+ );
|
|
|
nodeA = new DiscoveryNode("TS_A", "TS_A", serviceA.boundAddress().publishAddress(), ImmutableMap.<String, String>of(), version0);
|
|
|
- serviceB = build(ImmutableSettings.builder().put("name", "TS_B").build(), version1);
|
|
|
+ serviceB = build(
|
|
|
+ ImmutableSettings.builder().put("name", "TS_B", TransportService.SETTING_TRACE_LOG_INCLUDE, "", TransportService.SETTING_TRACE_LOG_EXCLUDE, "NOTHING").build(),
|
|
|
+ version1
|
|
|
+ );
|
|
|
nodeB = new DiscoveryNode("TS_B", "TS_B", serviceB.boundAddress().publishAddress(), ImmutableMap.<String, String>of(), version1);
|
|
|
|
|
|
// wait till all nodes are properly connected and the event has been sent, so tests in this class
|
|
@@ -133,27 +140,27 @@ public abstract class AbstractSimpleTransportTests extends ElasticsearchTestCase
|
|
|
|
|
|
TransportFuture<StringMessageResponse> res = serviceB.submitRequest(nodeA, "sayHello",
|
|
|
new StringMessageRequest("moshe"), new BaseTransportResponseHandler<StringMessageResponse>() {
|
|
|
- @Override
|
|
|
- public StringMessageResponse newInstance() {
|
|
|
- return new StringMessageResponse();
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public StringMessageResponse newInstance() {
|
|
|
+ return new StringMessageResponse();
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public String executor() {
|
|
|
- return ThreadPool.Names.GENERIC;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public String executor() {
|
|
|
+ return ThreadPool.Names.GENERIC;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void handleResponse(StringMessageResponse response) {
|
|
|
- assertThat("hello moshe", equalTo(response.message));
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public void handleResponse(StringMessageResponse response) {
|
|
|
+ assertThat("hello moshe", equalTo(response.message));
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void handleException(TransportException exp) {
|
|
|
- exp.printStackTrace();
|
|
|
- assertThat("got exception instead of a response: " + exp.getMessage(), false, equalTo(true));
|
|
|
- }
|
|
|
- });
|
|
|
+ @Override
|
|
|
+ public void handleException(TransportException exp) {
|
|
|
+ exp.printStackTrace();
|
|
|
+ assertThat("got exception instead of a response: " + exp.getMessage(), false, equalTo(true));
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
try {
|
|
|
StringMessageResponse message = res.get();
|
|
@@ -164,27 +171,27 @@ public abstract class AbstractSimpleTransportTests extends ElasticsearchTestCase
|
|
|
|
|
|
res = serviceB.submitRequest(nodeA, "sayHello",
|
|
|
new StringMessageRequest("moshe"), TransportRequestOptions.options().withCompress(true), new BaseTransportResponseHandler<StringMessageResponse>() {
|
|
|
- @Override
|
|
|
- public StringMessageResponse newInstance() {
|
|
|
- return new StringMessageResponse();
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public StringMessageResponse newInstance() {
|
|
|
+ return new StringMessageResponse();
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public String executor() {
|
|
|
- return ThreadPool.Names.GENERIC;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public String executor() {
|
|
|
+ return ThreadPool.Names.GENERIC;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void handleResponse(StringMessageResponse response) {
|
|
|
- assertThat("hello moshe", equalTo(response.message));
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public void handleResponse(StringMessageResponse response) {
|
|
|
+ assertThat("hello moshe", equalTo(response.message));
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void handleException(TransportException exp) {
|
|
|
- exp.printStackTrace();
|
|
|
- assertThat("got exception instead of a response: " + exp.getMessage(), false, equalTo(true));
|
|
|
- }
|
|
|
- });
|
|
|
+ @Override
|
|
|
+ public void handleException(TransportException exp) {
|
|
|
+ exp.printStackTrace();
|
|
|
+ assertThat("got exception instead of a response: " + exp.getMessage(), false, equalTo(true));
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
try {
|
|
|
StringMessageResponse message = res.get();
|
|
@@ -222,26 +229,26 @@ public abstract class AbstractSimpleTransportTests extends ElasticsearchTestCase
|
|
|
|
|
|
TransportFuture<TransportResponse.Empty> res = serviceB.submitRequest(nodeA, "sayHello",
|
|
|
TransportRequest.Empty.INSTANCE, TransportRequestOptions.options().withCompress(true), new BaseTransportResponseHandler<TransportResponse.Empty>() {
|
|
|
- @Override
|
|
|
- public TransportResponse.Empty newInstance() {
|
|
|
- return TransportResponse.Empty.INSTANCE;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public TransportResponse.Empty newInstance() {
|
|
|
+ return TransportResponse.Empty.INSTANCE;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public String executor() {
|
|
|
- return ThreadPool.Names.GENERIC;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public String executor() {
|
|
|
+ return ThreadPool.Names.GENERIC;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void handleResponse(TransportResponse.Empty response) {
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public void handleResponse(TransportResponse.Empty response) {
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void handleException(TransportException exp) {
|
|
|
- exp.printStackTrace();
|
|
|
- assertThat("got exception instead of a response: " + exp.getMessage(), false, equalTo(true));
|
|
|
- }
|
|
|
- });
|
|
|
+ @Override
|
|
|
+ public void handleException(TransportException exp) {
|
|
|
+ exp.printStackTrace();
|
|
|
+ assertThat("got exception instead of a response: " + exp.getMessage(), false, equalTo(true));
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
try {
|
|
|
TransportResponse.Empty message = res.get();
|
|
@@ -280,27 +287,27 @@ public abstract class AbstractSimpleTransportTests extends ElasticsearchTestCase
|
|
|
|
|
|
TransportFuture<StringMessageResponse> res = serviceB.submitRequest(nodeA, "sayHello",
|
|
|
new StringMessageRequest("moshe"), TransportRequestOptions.options().withCompress(true), new BaseTransportResponseHandler<StringMessageResponse>() {
|
|
|
- @Override
|
|
|
- public StringMessageResponse newInstance() {
|
|
|
- return new StringMessageResponse();
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public StringMessageResponse newInstance() {
|
|
|
+ return new StringMessageResponse();
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public String executor() {
|
|
|
- return ThreadPool.Names.GENERIC;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public String executor() {
|
|
|
+ return ThreadPool.Names.GENERIC;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void handleResponse(StringMessageResponse response) {
|
|
|
- assertThat("hello moshe", equalTo(response.message));
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public void handleResponse(StringMessageResponse response) {
|
|
|
+ assertThat("hello moshe", equalTo(response.message));
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void handleException(TransportException exp) {
|
|
|
- exp.printStackTrace();
|
|
|
- assertThat("got exception instead of a response: " + exp.getMessage(), false, equalTo(true));
|
|
|
- }
|
|
|
- });
|
|
|
+ @Override
|
|
|
+ public void handleException(TransportException exp) {
|
|
|
+ exp.printStackTrace();
|
|
|
+ assertThat("got exception instead of a response: " + exp.getMessage(), false, equalTo(true));
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
try {
|
|
|
StringMessageResponse message = res.get();
|
|
@@ -334,30 +341,30 @@ public abstract class AbstractSimpleTransportTests extends ElasticsearchTestCase
|
|
|
|
|
|
TransportFuture<StringMessageResponse> res = serviceB.submitRequest(nodeA, "sayHelloException",
|
|
|
new StringMessageRequest("moshe"), new BaseTransportResponseHandler<StringMessageResponse>() {
|
|
|
- @Override
|
|
|
- public StringMessageResponse newInstance() {
|
|
|
- return new StringMessageResponse();
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public StringMessageResponse newInstance() {
|
|
|
+ return new StringMessageResponse();
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public String executor() {
|
|
|
- return ThreadPool.Names.GENERIC;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public String executor() {
|
|
|
+ return ThreadPool.Names.GENERIC;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void handleResponse(StringMessageResponse response) {
|
|
|
- assertThat("got response instead of exception", false, equalTo(true));
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public void handleResponse(StringMessageResponse response) {
|
|
|
+ fail("got response instead of exception");
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void handleException(TransportException exp) {
|
|
|
- assertThat("bad message !!!", equalTo(exp.getCause().getMessage()));
|
|
|
- }
|
|
|
- });
|
|
|
+ @Override
|
|
|
+ public void handleException(TransportException exp) {
|
|
|
+ assertThat("bad message !!!", equalTo(exp.getCause().getMessage()));
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
try {
|
|
|
res.txGet();
|
|
|
- assertThat("exception should be thrown", false, equalTo(true));
|
|
|
+ fail("exception should be thrown");
|
|
|
} catch (Exception e) {
|
|
|
assertThat("bad message !!!", equalTo(e.getCause().getMessage()));
|
|
|
}
|
|
@@ -451,30 +458,30 @@ public abstract class AbstractSimpleTransportTests extends ElasticsearchTestCase
|
|
|
|
|
|
TransportFuture<StringMessageResponse> res = serviceB.submitRequest(nodeA, "sayHelloTimeoutNoResponse",
|
|
|
new StringMessageRequest("moshe"), options().withTimeout(100), new BaseTransportResponseHandler<StringMessageResponse>() {
|
|
|
- @Override
|
|
|
- public StringMessageResponse newInstance() {
|
|
|
- return new StringMessageResponse();
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public StringMessageResponse newInstance() {
|
|
|
+ return new StringMessageResponse();
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public String executor() {
|
|
|
- return ThreadPool.Names.GENERIC;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public String executor() {
|
|
|
+ return ThreadPool.Names.GENERIC;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void handleResponse(StringMessageResponse response) {
|
|
|
- assertThat("got response instead of exception", false, equalTo(true));
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public void handleResponse(StringMessageResponse response) {
|
|
|
+ fail("got response instead of exception");
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void handleException(TransportException exp) {
|
|
|
- assertThat(exp, instanceOf(ReceiveTimeoutTransportException.class));
|
|
|
- }
|
|
|
- });
|
|
|
+ @Override
|
|
|
+ public void handleException(TransportException exp) {
|
|
|
+ assertThat(exp, instanceOf(ReceiveTimeoutTransportException.class));
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
try {
|
|
|
StringMessageResponse message = res.txGet();
|
|
|
- assertThat("exception should be thrown", false, equalTo(true));
|
|
|
+ fail("exception should be thrown");
|
|
|
} catch (Exception e) {
|
|
|
assertThat(e, instanceOf(ReceiveTimeoutTransportException.class));
|
|
|
}
|
|
@@ -514,32 +521,32 @@ public abstract class AbstractSimpleTransportTests extends ElasticsearchTestCase
|
|
|
final CountDownLatch latch = new CountDownLatch(1);
|
|
|
TransportFuture<StringMessageResponse> res = serviceB.submitRequest(nodeA, "sayHelloTimeoutDelayedResponse",
|
|
|
new StringMessageRequest("300ms"), options().withTimeout(100), new BaseTransportResponseHandler<StringMessageResponse>() {
|
|
|
- @Override
|
|
|
- public StringMessageResponse newInstance() {
|
|
|
- return new StringMessageResponse();
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public StringMessageResponse newInstance() {
|
|
|
+ return new StringMessageResponse();
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public String executor() {
|
|
|
- return ThreadPool.Names.GENERIC;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public String executor() {
|
|
|
+ return ThreadPool.Names.GENERIC;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void handleResponse(StringMessageResponse response) {
|
|
|
- latch.countDown();
|
|
|
- assertThat("got response instead of exception", false, equalTo(true));
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public void handleResponse(StringMessageResponse response) {
|
|
|
+ latch.countDown();
|
|
|
+ fail("got response instead of exception");
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public void handleException(TransportException exp) {
|
|
|
- latch.countDown();
|
|
|
- assertThat(exp, instanceOf(ReceiveTimeoutTransportException.class));
|
|
|
- }
|
|
|
- });
|
|
|
+ @Override
|
|
|
+ public void handleException(TransportException exp) {
|
|
|
+ latch.countDown();
|
|
|
+ assertThat(exp, instanceOf(ReceiveTimeoutTransportException.class));
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
try {
|
|
|
StringMessageResponse message = res.txGet();
|
|
|
- assertThat("exception should be thrown", false, equalTo(true));
|
|
|
+ fail("exception should be thrown");
|
|
|
} catch (Exception e) {
|
|
|
assertThat(e, instanceOf(ReceiveTimeoutTransportException.class));
|
|
|
}
|
|
@@ -550,27 +557,27 @@ public abstract class AbstractSimpleTransportTests extends ElasticsearchTestCase
|
|
|
// now, try and send another request, this times, with a short timeout
|
|
|
res = serviceB.submitRequest(nodeA, "sayHelloTimeoutDelayedResponse",
|
|
|
new StringMessageRequest(counter + "ms"), options().withTimeout(3000), new BaseTransportResponseHandler<StringMessageResponse>() {
|
|
|
- @Override
|
|
|
- public StringMessageResponse newInstance() {
|
|
|
- return new StringMessageResponse();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public String executor() {
|
|
|
- return ThreadPool.Names.GENERIC;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void handleResponse(StringMessageResponse response) {
|
|
|
- assertThat("hello " + counter + "ms", equalTo(response.message));
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void handleException(TransportException exp) {
|
|
|
- exp.printStackTrace();
|
|
|
- assertThat("got exception instead of a response for " + counter + ": " + exp.getDetailedMessage(), false, equalTo(true));
|
|
|
- }
|
|
|
- });
|
|
|
+ @Override
|
|
|
+ public StringMessageResponse newInstance() {
|
|
|
+ return new StringMessageResponse();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String executor() {
|
|
|
+ return ThreadPool.Names.GENERIC;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void handleResponse(StringMessageResponse response) {
|
|
|
+ assertThat("hello " + counter + "ms", equalTo(response.message));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void handleException(TransportException exp) {
|
|
|
+ exp.printStackTrace();
|
|
|
+ fail("got exception instead of a response for " + counter + ": " + exp.getDetailedMessage());
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
StringMessageResponse message = res.txGet();
|
|
|
assertThat(message.message, equalTo("hello " + counter + "ms"));
|
|
@@ -579,6 +586,173 @@ public abstract class AbstractSimpleTransportTests extends ElasticsearchTestCase
|
|
|
serviceA.removeHandler("sayHelloTimeoutDelayedResponse");
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testTracerLog() throws InterruptedException {
|
|
|
+ TransportRequestHandler handler = new BaseTransportRequestHandler<StringMessageRequest>() {
|
|
|
+ @Override
|
|
|
+ public StringMessageRequest newInstance() {
|
|
|
+ return new StringMessageRequest("");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void messageReceived(StringMessageRequest request, TransportChannel channel) throws Exception {
|
|
|
+ channel.sendResponse(new StringMessageResponse(""));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String executor() {
|
|
|
+ return ThreadPool.Names.SAME;
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ TransportRequestHandler handlerWithError = new BaseTransportRequestHandler<StringMessageRequest>() {
|
|
|
+ @Override
|
|
|
+ public StringMessageRequest newInstance() {
|
|
|
+ return new StringMessageRequest("");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void messageReceived(StringMessageRequest request, TransportChannel channel) throws Exception {
|
|
|
+ channel.sendResponse(new RuntimeException(""));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String executor() {
|
|
|
+ return ThreadPool.Names.SAME;
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ final Semaphore requestCompleted = new Semaphore(0);
|
|
|
+ TransportResponseHandler noopResponseHandler = new BaseTransportResponseHandler<StringMessageResponse>() {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public StringMessageResponse newInstance() {
|
|
|
+ return new StringMessageResponse();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void handleResponse(StringMessageResponse response) {
|
|
|
+ requestCompleted.release();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void handleException(TransportException exp) {
|
|
|
+ requestCompleted.release();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String executor() {
|
|
|
+ return ThreadPool.Names.SAME;
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ serviceA.registerHandler("test", handler);
|
|
|
+ serviceA.registerHandler("testError", handlerWithError);
|
|
|
+ serviceB.registerHandler("test", handler);
|
|
|
+ serviceB.registerHandler("testError", handlerWithError);
|
|
|
+
|
|
|
+ Tracer tracer = new Tracer();
|
|
|
+ serviceA.addTracer(tracer);
|
|
|
+ serviceB.addTracer(tracer);
|
|
|
+ serviceA.sendRequest(nodeB, "test", new StringMessageRequest(""), noopResponseHandler);
|
|
|
+ requestCompleted.acquire();
|
|
|
+ assertThat("didn't see request sent", tracer.sawRequestSent, equalTo(true));
|
|
|
+ assertThat("didn't see request received", tracer.sawRequestReceived, equalTo(true));
|
|
|
+ assertThat("didn't see response sent", tracer.sawResponseSent, equalTo(true));
|
|
|
+ assertThat("didn't see response received", tracer.sawResponseReceived, equalTo(true));
|
|
|
+ assertThat("saw error sent", tracer.sawErrorSent, equalTo(false));
|
|
|
+
|
|
|
+ tracer.reset();
|
|
|
+ serviceA.sendRequest(nodeB, "testError", new StringMessageRequest(""), noopResponseHandler);
|
|
|
+ requestCompleted.acquire();
|
|
|
+ assertThat("didn't see request sent", tracer.sawRequestSent, equalTo(true));
|
|
|
+ assertThat("didn't see request received", tracer.sawRequestReceived, equalTo(true));
|
|
|
+ assertThat("saw response sent", tracer.sawResponseSent, equalTo(false));
|
|
|
+ assertThat("didn't see response received", tracer.sawResponseReceived, equalTo(true));
|
|
|
+ assertThat("didn't see error sent", tracer.sawErrorSent, equalTo(true));
|
|
|
+
|
|
|
+ String includeSettings;
|
|
|
+ String excludeSettings;
|
|
|
+ if (randomBoolean()) {
|
|
|
+ // sometimes leave include empty (default)
|
|
|
+ includeSettings = randomBoolean() ? "*" : "";
|
|
|
+ excludeSettings = "*Error";
|
|
|
+ } else {
|
|
|
+ includeSettings = "test";
|
|
|
+ excludeSettings = "DOESN'T_MATCH";
|
|
|
+ }
|
|
|
+
|
|
|
+ serviceA.applySettings(ImmutableSettings.builder()
|
|
|
+ .put(TransportService.SETTING_TRACE_LOG_INCLUDE, includeSettings, TransportService.SETTING_TRACE_LOG_EXCLUDE, excludeSettings)
|
|
|
+ .build());
|
|
|
+
|
|
|
+ tracer.reset();
|
|
|
+ serviceA.sendRequest(nodeB, "test", new StringMessageRequest(""), noopResponseHandler);
|
|
|
+ requestCompleted.acquire();
|
|
|
+ assertThat("didn't see request sent", tracer.sawRequestSent, equalTo(true));
|
|
|
+ assertThat("didn't see request received", tracer.sawRequestReceived, equalTo(true));
|
|
|
+ assertThat("didn't see response sent", tracer.sawResponseSent, equalTo(true));
|
|
|
+ assertThat("didn't see response received", tracer.sawResponseReceived, equalTo(true));
|
|
|
+ assertThat("saw error sent", tracer.sawErrorSent, equalTo(false));
|
|
|
+
|
|
|
+ tracer.reset();
|
|
|
+ serviceA.sendRequest(nodeB, "testError", new StringMessageRequest(""), noopResponseHandler);
|
|
|
+ requestCompleted.acquire();
|
|
|
+ assertThat("saw request sent", tracer.sawRequestSent, equalTo(false));
|
|
|
+ assertThat("didn't see request received", tracer.sawRequestReceived, equalTo(true));
|
|
|
+ assertThat("saw response sent", tracer.sawResponseSent, equalTo(false));
|
|
|
+ assertThat("saw response received", tracer.sawResponseReceived, equalTo(false));
|
|
|
+ assertThat("didn't see error sent", tracer.sawErrorSent, equalTo(true));
|
|
|
+ }
|
|
|
+
|
|
|
+ private static class Tracer extends MockTransportService.Tracer {
|
|
|
+ public volatile boolean sawRequestSent;
|
|
|
+ public volatile boolean sawRequestReceived;
|
|
|
+ public volatile boolean sawResponseSent;
|
|
|
+ public volatile boolean sawErrorSent;
|
|
|
+ public volatile boolean sawResponseReceived;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void receivedRequest(long requestId, String action) {
|
|
|
+ super.receivedRequest(requestId, action);
|
|
|
+ sawRequestReceived = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void requestSent(DiscoveryNode node, long requestId, String action, TransportRequestOptions options) {
|
|
|
+ super.requestSent(node, requestId, action, options);
|
|
|
+ sawRequestSent = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void responseSent(long requestId, String action) {
|
|
|
+ super.responseSent(requestId, action);
|
|
|
+ sawResponseSent = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void responseSent(long requestId, String action, Throwable t) {
|
|
|
+ super.responseSent(requestId, action, t);
|
|
|
+ sawErrorSent = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void receivedResponse(long requestId, DiscoveryNode sourceNode, String action) {
|
|
|
+ super.receivedResponse(requestId, sourceNode, action);
|
|
|
+ sawResponseReceived = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void reset() {
|
|
|
+ sawRequestSent = false;
|
|
|
+ sawRequestReceived = false;
|
|
|
+ sawResponseSent = false;
|
|
|
+ sawErrorSent = false;
|
|
|
+ sawResponseReceived = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
static class StringMessageRequest extends TransportRequest {
|
|
|
|
|
|
private String message;
|
|
@@ -951,7 +1125,7 @@ public abstract class AbstractSimpleTransportTests extends ElasticsearchTestCase
|
|
|
|
|
|
@Override
|
|
|
public void handleResponse(StringMessageResponse response) {
|
|
|
- assertThat("got response instead of exception", false, equalTo(true));
|
|
|
+ fail("got response instead of exception");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -962,21 +1136,21 @@ public abstract class AbstractSimpleTransportTests extends ElasticsearchTestCase
|
|
|
|
|
|
try {
|
|
|
res.txGet();
|
|
|
- assertThat("exception should be thrown", false, equalTo(true));
|
|
|
+ fail("exception should be thrown");
|
|
|
} catch (Exception e) {
|
|
|
assertThat(e.getCause().getMessage(), endsWith("DISCONNECT: simulated"));
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
serviceB.connectToNode(nodeA);
|
|
|
- assertThat("exception should be thrown", false, equalTo(true));
|
|
|
+ fail("exception should be thrown");
|
|
|
} catch (ConnectTransportException e) {
|
|
|
// all is well
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
serviceB.connectToNodeLight(nodeA);
|
|
|
- assertThat("exception should be thrown", false, equalTo(true));
|
|
|
+ fail("exception should be thrown");
|
|
|
} catch (ConnectTransportException e) {
|
|
|
// all is well
|
|
|
}
|
|
@@ -1020,7 +1194,7 @@ public abstract class AbstractSimpleTransportTests extends ElasticsearchTestCase
|
|
|
|
|
|
@Override
|
|
|
public void handleResponse(StringMessageResponse response) {
|
|
|
- assertThat("got response instead of exception", false, equalTo(true));
|
|
|
+ fail("got response instead of exception");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -1031,21 +1205,21 @@ public abstract class AbstractSimpleTransportTests extends ElasticsearchTestCase
|
|
|
|
|
|
try {
|
|
|
res.txGet();
|
|
|
- assertThat("exception should be thrown", false, equalTo(true));
|
|
|
+ fail("exception should be thrown");
|
|
|
} catch (Exception e) {
|
|
|
assertThat(e, instanceOf(ReceiveTimeoutTransportException.class));
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
serviceB.connectToNode(nodeA);
|
|
|
- assertThat("exception should be thrown", false, equalTo(true));
|
|
|
+ fail("exception should be thrown");
|
|
|
} catch (ConnectTransportException e) {
|
|
|
// all is well
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
serviceB.connectToNodeLight(nodeA);
|
|
|
- assertThat("exception should be thrown", false, equalTo(true));
|
|
|
+ fail("exception should be thrown");
|
|
|
} catch (ConnectTransportException e) {
|
|
|
// all is well
|
|
|
}
|