Skip to content

Commit e10a1bb

Browse files
committed
Make sure that the HTTP client we use in tests are scoped on the class to avoid premature closing
1 parent 8d03d3c commit e10a1bb

File tree

6 files changed

+146
-109
lines changed

6 files changed

+146
-109
lines changed

src/test/java/io/vertx/httpproxy/BackendTest.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,12 @@ public BackendTest(ProxyOptions options) {
2323
@Override
2424
public void setUp() {
2525
super.setUp();
26-
client = vertx.createHttpClient();
26+
}
27+
28+
@Override
29+
public void tearDown(TestContext context) {
30+
super.tearDown(context);
31+
client = null;
2732
}
2833

2934
@Test
@@ -38,7 +43,7 @@ public void testResponse(TestContext ctx) {
3843
.end("some-data");
3944
});
4045
startProxy(backend);
41-
HttpClient client = vertx.createHttpClient();
46+
client = vertx.createHttpClient();
4247
Async async = ctx.async();
4348
client.request(HttpMethod.POST, 8080, "localhost", "/path")
4449
.compose(req -> req.send().compose(resp -> {

src/test/java/io/vertx/httpproxy/ProxyClientKeepAliveTest.java

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public class ProxyClientKeepAliveTest extends ProxyTestBase {
3737

3838
protected boolean keepAlive = true;
3939
protected boolean pipelining = false;
40+
protected HttpClient client;
4041

4142
public ProxyClientKeepAliveTest(ProxyOptions options) {
4243
super(options);
@@ -48,11 +49,17 @@ public void setUp() {
4849
clientOptions.setKeepAlive(keepAlive).setPipelining(pipelining);
4950
}
5051

51-
/*
52+
@Override
53+
public void tearDown(TestContext context) {
54+
super.tearDown(context);
55+
client = null;
56+
}
57+
58+
/*
5259
@Test
5360
public void testNotfound(TestContext ctx) {
5461
startProxy(ctx);
55-
HttpClient client = vertx.createHttpClient();
62+
client = vertx.createHttpClient();
5663
Async async = ctx.async();
5764
client.getNow(8080, "localhost", "/", resp -> {
5865
ctx.assertEquals(404, resp.statusCode());
@@ -69,7 +76,7 @@ public void testGet(TestContext ctx) {
6976
req.response().end("Hello World");
7077
});
7178
startProxy(backend);
72-
HttpClient client = vertx.createHttpClient();
79+
client = vertx.createHttpClient();
7380
client.request(GET, 8080, "localhost", "/somepath")
7481
.compose(req -> req
7582
.send()
@@ -96,7 +103,7 @@ public void testPost(TestContext ctx) {
96103
});
97104
});
98105
startProxy(backend);
99-
HttpClient client = vertx.createHttpClient();
106+
client = vertx.createHttpClient();
100107
client.request(GET, 8080, "localhost", "/")
101108
.compose(req -> req
102109
.send(Buffer.buffer(body))
@@ -118,7 +125,7 @@ public void testBackendClosesDuringUpload(TestContext ctx) {
118125
});
119126
});
120127
startProxy(backend);
121-
HttpClient client = vertx.createHttpClient();
128+
client = vertx.createHttpClient();
122129
Async async = ctx.async();
123130
client.request(HttpMethod.POST, 8080, "localhost", "/")
124131
.onComplete(ctx.asyncAssertSuccess(req -> {
@@ -144,7 +151,7 @@ public void testClientClosesDuringUpload(TestContext ctx) {
144151
});
145152
});
146153
startProxy(backend);
147-
HttpClient client = vertx.createHttpClient();
154+
client = vertx.createHttpClient();
148155
client.request(HttpMethod.POST, 8080, "localhost", "/")
149156
.onComplete(ctx.asyncAssertSuccess(req -> {
150157
req.response().onComplete(ctx.asyncAssertFailure());
@@ -172,7 +179,7 @@ public void testClientClosesAfterUpload(TestContext ctx) {
172179
});
173180
});
174181
startProxy(backend);
175-
HttpClient client = vertx.createHttpClient();
182+
client = vertx.createHttpClient();
176183
client.request(HttpMethod.POST, 8080, "localhost", "/")
177184
.onComplete(ctx.asyncAssertSuccess(req -> {
178185
closeLatch.future().onSuccess(v -> {
@@ -199,7 +206,7 @@ public void testBackendCloseResponseWithOnGoingRequest(TestContext ctx) {
199206
});
200207
});
201208
startProxy(backend);
202-
HttpClient client = vertx.createHttpClient();
209+
client = vertx.createHttpClient();
203210
client.request(HttpMethod.POST, 8080, "localhost", "/")
204211
.onComplete(ctx.asyncAssertSuccess(req -> {
205212
req.putHeader("Content-Length", "2048");
@@ -235,7 +242,7 @@ private void testBackendCloseResponse(TestContext ctx, boolean chunked) {
235242
});
236243
});
237244
startProxy(backend);
238-
HttpClient client = vertx.createHttpClient();
245+
client = vertx.createHttpClient();
239246
Async async = ctx.async();
240247
client.request(GET, 8080, "localhost", "/")
241248
.onComplete(ctx.asyncAssertSuccess(req -> {
@@ -275,7 +282,7 @@ private void testFrontendCloseResponse(TestContext ctx, boolean chunked) {
275282
});
276283
});
277284
startProxy(backend);
278-
HttpClient client = vertx.createHttpClient();
285+
client = vertx.createHttpClient();
279286
client.request(GET, 8081, "localhost", "/").onComplete(ctx.asyncAssertSuccess(req -> {
280287
req.send().onComplete(ctx.asyncAssertSuccess(resp -> {
281288
resp.handler(buff -> {
@@ -293,7 +300,7 @@ public void testBackendRepliesIncorrectHttpVersion(TestContext ctx) {
293300
so.close();
294301
});
295302
startProxy(backend);
296-
HttpClient client = vertx.createHttpClient();
303+
client = vertx.createHttpClient();
297304
client.request(GET, 8080, "localhost", "/")
298305
.compose(req ->
299306
req.send().compose(resp -> {
@@ -312,7 +319,7 @@ public void testSuppressIncorrectWarningHeaders(TestContext ctx) {
312319
.end();
313320
});
314321
startProxy(backend);
315-
HttpClient client = vertx.createHttpClient();
322+
client = vertx.createHttpClient();
316323
client.request(GET, 8080, "localhost", "/").onComplete(ctx.asyncAssertSuccess(req -> {
317324
req.send().onComplete(ctx.asyncAssertSuccess(resp -> {
318325
ctx.assertNotNull(resp.getHeader("date"));
@@ -331,7 +338,7 @@ public void testAddMissingHeaderDate(TestContext ctx) {
331338
.end();
332339
});
333340
startProxy(backend);
334-
HttpClient client = vertx.createHttpClient();
341+
client = vertx.createHttpClient();
335342
client.request(GET, 8080, "localhost", "/").onComplete(ctx.asyncAssertSuccess(req -> {
336343
req.send().onComplete(ctx.asyncAssertSuccess(resp -> {
337344
ctx.assertNotNull(resp.getHeader("date"));
@@ -351,7 +358,7 @@ public void testAddMissingHeaderDateFromWarning(TestContext ctx) {
351358
.end();
352359
});
353360
startProxy(backend);
354-
HttpClient client = vertx.createHttpClient();
361+
client = vertx.createHttpClient();
355362
client.request(GET, 8080, "localhost", "/").onComplete(ctx.asyncAssertSuccess(req -> {
356363
req.send().onComplete(ctx.asyncAssertSuccess(resp -> {
357364
ctx.assertEquals(expectedDate, resp.getHeader("date"));
@@ -380,7 +387,7 @@ private void checkChunkedResponse(TestContext ctx, HttpVersion version) {
380387
streamChunkedBody(resp, num);
381388
});
382389
startProxy(backend);
383-
HttpClient client = vertx.createHttpClient(new HttpClientOptions().setProtocolVersion(version));
390+
client = vertx.createHttpClient(new HttpClientOptions().setProtocolVersion(version));
384391
StringBuilder sb = new StringBuilder();
385392
for (int i = 0;i < num;i++) {
386393
sb.append("chunk-").append(i);
@@ -435,7 +442,7 @@ public void testChunkedTransferEncodingRequest(TestContext ctx) {
435442
req.response().end();
436443
});
437444
startProxy(backend);
438-
HttpClient client = vertx.createHttpClient();
445+
client = vertx.createHttpClient();
439446
client.request(GET, 8080, "localhost", "/")
440447
.onSuccess(req -> {
441448
req.setChunked(true);
@@ -472,7 +479,7 @@ public void testHandleLongInitialLength(TestContext ctx) {
472479
req.response().end();
473480
});
474481
startProxy(backend);
475-
HttpClient client = vertx.createHttpClient();
482+
client = vertx.createHttpClient();
476483
client.request(GET, 8080, "localhost", "" + uri).onComplete(ctx.asyncAssertSuccess(req -> {
477484
req.send().onComplete(ctx.asyncAssertSuccess(resp -> {
478485
ctx.assertEquals(200, resp.statusCode());
@@ -505,7 +512,7 @@ public void testLargeChunkExtValue(TestContext ctx) {
505512
});
506513
clientOptions.setMaxInitialLineLength(5000);
507514
startProxy(backend);
508-
HttpClient client = vertx.createHttpClient(/*new HttpClientOptions().setProtocolVersion(HttpVersion.HTTP_1_0)*/);
515+
client = vertx.createHttpClient(/*new HttpClientOptions().setProtocolVersion(HttpVersion.HTTP_1_0)*/);
509516
client.request(GET, 8080, "localhost", "/somepath").compose(req ->
510517
req.send().compose(resp -> {
511518
ctx.assertEquals(200, resp.statusCode());
@@ -608,7 +615,7 @@ public void testRawMethod(TestContext ctx) throws Exception {
608615
req.response().end();
609616
});
610617
startProxy(backend);
611-
HttpClient client = vertx.createHttpClient();
618+
client = vertx.createHttpClient();
612619
client.request(HttpMethod.valueOf("FOO"), 8080, "localhost", "/")
613620
.compose(req -> req.send().compose(HttpClientResponse::body))
614621
.onComplete(ctx.asyncAssertSuccess());
@@ -622,7 +629,7 @@ public void testHead(TestContext ctx) throws Exception {
622629
req.response().putHeader("content-length", "" + "content".length()).end();
623630
});
624631
startProxy(backend);
625-
HttpClient client = vertx.createHttpClient();
632+
client = vertx.createHttpClient();
626633
client.request(HEAD, 8080, "localhost", "/").compose(req ->
627634
req.send().compose(HttpClientResponse::body)
628635
).onComplete(ctx.asyncAssertSuccess(body -> {
@@ -644,7 +651,7 @@ public void testHeadWithNotSendBody(TestContext ctx) throws Exception {
644651
);
645652
});
646653
startProxy(backend);
647-
HttpClient client = vertx.createHttpClient();
654+
client = vertx.createHttpClient();
648655
client.request(HEAD, 8080, "localhost", "/").compose(req ->
649656
req.send().compose(HttpClientResponse::body)
650657
).onComplete(ctx.asyncAssertSuccess(body -> {
@@ -668,7 +675,7 @@ private void checkBadResponse(TestContext ctx, String... responses) throws Excep
668675
for (String response : responses) {
669676
responseBody.set(response);
670677
Async latch = ctx.async();
671-
HttpClient client = vertx.createHttpClient();
678+
client = vertx.createHttpClient();
672679
try (Closeable proxy = startProxy(backend)) {
673680
client.request(GET, 8080, "localhost", "/somepath")
674681
.compose(req -> req.send().compose(resp -> {
@@ -715,7 +722,7 @@ public void testPropagateHeaders(TestContext ctx) {
715722
req.response().putHeader("response_header", "response_header_value").end();
716723
});
717724
startProxy(backend);
718-
HttpClient client = vertx.createHttpClient();
725+
client = vertx.createHttpClient();
719726
Async latch = ctx.async();
720727
client.request(GET, 8080, "localhost", "/").onComplete(ctx.asyncAssertSuccess(req -> {
721728
req
@@ -763,7 +770,7 @@ public Future<ProxyResponse> handleProxyRequest(ProxyContext context) {
763770
}
764771
});
765772
});
766-
HttpClient client = vertx.createHttpClient();
773+
client = vertx.createHttpClient();
767774
client.request(GET, 8080, "localhost", "/somepath")
768775
.compose(req -> req
769776
.send()

0 commit comments

Comments
 (0)