Skip to content

Commit 2344e3e

Browse files
authored
HttpClient timeout exception message contains null address (#5780)
See #5775 The server field is no longer used, the info can be retrieved from the HTTP stream. Signed-off-by: Thomas Segismont <tsegismont@gmail.com>
1 parent 808bf21 commit 2344e3e

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/main/java/io/vertx/core/http/impl/HttpClientRequestBase.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ public abstract class HttpClientRequestBase implements HttpClientRequest {
3232

3333
protected final ContextInternal context;
3434
protected final HttpClientStream stream;
35-
protected final SocketAddress server;
3635
protected final boolean ssl;
3736
private io.vertx.core.http.HttpMethod method;
3837
private String host;
@@ -53,7 +52,6 @@ public abstract class HttpClientRequestBase implements HttpClientRequest {
5352
this.context = responsePromise.context();
5453
this.uri = uri;
5554
this.method = method;
56-
this.server = server;
5755
this.host = host;
5856
this.port = port;
5957
this.ssl = stream.connection().isSsl();
@@ -233,7 +231,7 @@ private void handleTimeout(long timeoutMs) {
233231
return;
234232
}
235233
}
236-
cause = timeoutEx(timeoutMs, method, server, uri);
234+
cause = timeoutEx(timeoutMs, method, stream.connection().remoteAddress(), uri);
237235
}
238236
reset(cause);
239237
}

src/test/java/io/vertx/core/http/HttpClientTimeoutTest.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
import java.util.concurrent.atomic.AtomicInteger;
3030
import java.util.concurrent.atomic.AtomicReference;
3131

32+
import static org.hamcrest.CoreMatchers.containsString;
33+
3234
public abstract class HttpClientTimeoutTest extends HttpTestBase {
3335

3436
@Test
@@ -266,6 +268,7 @@ public void testResponseDataTimeout() throws Exception {
266268
resp.exceptionHandler(t -> {
267269
if (count.getAndIncrement() == 0) {
268270
assertTrue(t instanceof TimeoutException);
271+
assertThat(t.getMessage(), containsString(testAddress.toString()));
269272
assertEquals(expected, received);
270273
complete();
271274
}
@@ -286,6 +289,7 @@ public void testResponseDataTimeout() throws Exception {
286289
req.exceptionHandler(t -> {
287290
if (count.getAndIncrement() == 0) {
288291
assertTrue(t instanceof TimeoutException);
292+
assertThat(t.getMessage(), containsString(testAddress.toString()));
289293
assertEquals(expected, received);
290294
complete();
291295
}
@@ -363,7 +367,10 @@ public void testRequestsTimeoutInQueue() throws Exception {
363367
for (int i = 0; i < 5; i++) {
364368
client.request(new RequestOptions(requestOptions).setIdleTimeout(500))
365369
.compose(HttpClientRequest::send)
366-
.onComplete(onFailure(t -> assertTrue(t instanceof TimeoutException)));
370+
.onComplete(onFailure(t -> {
371+
assertTrue(t instanceof TimeoutException);
372+
assertThat(t.getMessage(), containsString(testAddress.toString()));
373+
}));
367374
}
368375
// Now another request that should not timeout
369376
client.request(new RequestOptions(requestOptions).setIdleTimeout(3000))

0 commit comments

Comments
 (0)