Skip to content

Commit 425c862

Browse files
slandelleslandelle
authored andcommitted
Close clients in test! and in finally blocks!
1 parent bed6e1f commit 425c862

File tree

8 files changed

+121
-113
lines changed

8 files changed

+121
-113
lines changed

api/src/test/java/org/asynchttpclient/async/AsyncProvidersBasicTest.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1704,12 +1704,16 @@ public void asyncHttpClientConfigBeanTest() throws Exception {
17041704
@Test(groups = { "default_provider", "async" })
17051705
public void bodyAsByteTest() throws Throwable {
17061706
final AsyncHttpClient client = getAsyncHttpClient(null);
1707-
Response r = client.prepareGet(getTargetUrl()).execute().get();
1708-
1709-
assertEquals(r.getStatusCode(), 200);
1710-
assertEquals(r.getResponseBodyAsBytes(), new byte[] {});
1711-
1712-
client.close();
1707+
try {
1708+
Response r = client.prepareGet(getTargetUrl()).execute().get();
1709+
1710+
assertEquals(r.getStatusCode(), 200);
1711+
assertEquals(r.getResponseBodyAsBytes(), new byte[] {});
1712+
1713+
client.close();
1714+
} finally {
1715+
client.close();
1716+
}
17131717
}
17141718

17151719
@Test(groups = { "default_provider", "async" })

api/src/test/java/org/asynchttpclient/async/BodyDeferringAsyncHandlerTest.java

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -214,29 +214,32 @@ public void deferredInputStreamTrick() throws IOException, ExecutionException, T
214214
@Test(groups = { "standalone", "default_provider" })
215215
public void deferredInputStreamTrickWithFailure() throws IOException, ExecutionException, TimeoutException, InterruptedException {
216216
AsyncHttpClient client = getAsyncHttpClient(getAsyncHttpClientConfig());
217-
AsyncHttpClient.BoundRequestBuilder r = client.prepareGet("http://127.0.0.1:" + port1 + "/deferredInputStreamTrickWithFailure").addHeader("X-FAIL-TRANSFER", Boolean.TRUE.toString());
218-
219-
PipedOutputStream pos = new PipedOutputStream();
220-
PipedInputStream pis = new PipedInputStream(pos);
221-
BodyDeferringAsyncHandler bdah = new BodyDeferringAsyncHandler(pos);
222-
223-
Future<Response> f = r.execute(bdah);
224-
225-
BodyDeferringInputStream is = new BodyDeferringInputStream(f, bdah, pis);
226-
227-
Response resp = is.getAsapResponse();
228-
assertNotNull(resp);
229-
assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK);
230-
assertEquals(true, resp.getHeader("content-length").equals(String.valueOf(HALF_GIG)));
231-
// "consume" the body, but our code needs input stream
232-
CountingOutputStream cos = new CountingOutputStream();
217+
233218
try {
234-
copy(is, cos);
235-
Assert.fail("InputStream consumption should fail with IOException!");
236-
} catch (IOException e) {
237-
// good!
219+
AsyncHttpClient.BoundRequestBuilder r = client.prepareGet("http://127.0.0.1:" + port1 + "/deferredInputStreamTrickWithFailure").addHeader("X-FAIL-TRANSFER", Boolean.TRUE.toString());
220+
PipedOutputStream pos = new PipedOutputStream();
221+
PipedInputStream pis = new PipedInputStream(pos);
222+
BodyDeferringAsyncHandler bdah = new BodyDeferringAsyncHandler(pos);
223+
224+
Future<Response> f = r.execute(bdah);
225+
226+
BodyDeferringInputStream is = new BodyDeferringInputStream(f, bdah, pis);
227+
228+
Response resp = is.getAsapResponse();
229+
assertNotNull(resp);
230+
assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK);
231+
assertEquals(true, resp.getHeader("content-length").equals(String.valueOf(HALF_GIG)));
232+
// "consume" the body, but our code needs input stream
233+
CountingOutputStream cos = new CountingOutputStream();
234+
try {
235+
copy(is, cos);
236+
Assert.fail("InputStream consumption should fail with IOException!");
237+
} catch (IOException e) {
238+
// good!
239+
}
240+
} finally {
241+
client.close();
238242
}
239-
client.close();
240243
}
241244

242245
@Test(groups = { "standalone", "default_provider" })
@@ -259,5 +262,4 @@ public void testConnectionRefused() throws IOException, ExecutionException, Time
259262
client.close();
260263
}
261264
}
262-
263265
}

api/src/test/java/org/asynchttpclient/async/ChunkingTest.java

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -73,20 +73,19 @@ abstract public class ChunkingTest extends AbstractBasicTest {
7373
*/
7474
@Test()
7575
public void testCustomChunking() throws Throwable {
76-
AsyncHttpClient c = null;
76+
AsyncHttpClientConfig.Builder bc =
77+
new AsyncHttpClientConfig.Builder();
78+
79+
bc.setAllowPoolingConnection(true);
80+
bc.setMaximumConnectionsPerHost(1);
81+
bc.setMaximumConnectionsTotal(1);
82+
bc.setConnectionTimeoutInMs(1000);
83+
bc.setRequestTimeoutInMs(1000);
84+
bc.setFollowRedirects(true);
85+
86+
87+
AsyncHttpClient c = getAsyncHttpClient(bc.build());
7788
try {
78-
AsyncHttpClientConfig.Builder bc =
79-
new AsyncHttpClientConfig.Builder();
80-
81-
bc.setAllowPoolingConnection(true);
82-
bc.setMaximumConnectionsPerHost(1);
83-
bc.setMaximumConnectionsTotal(1);
84-
bc.setConnectionTimeoutInMs(1000);
85-
bc.setRequestTimeoutInMs(1000);
86-
bc.setFollowRedirects(true);
87-
88-
89-
c = getAsyncHttpClient(bc.build());
9089

9190
RequestBuilder builder = new RequestBuilder("POST");
9291
builder.setUrl(getTargetUrl());
@@ -119,7 +118,7 @@ public void testCustomChunking() throws Throwable {
119118
}
120119
}
121120
finally {
122-
if (c != null) c.close();
121+
c.close();
123122
}
124123
}
125124

@@ -163,5 +162,4 @@ private static File getTestFile() {
163162

164163
return testResource1File;
165164
}
166-
167165
}

api/src/test/java/org/asynchttpclient/async/RedirectConnectionUsageTest.java

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -104,19 +104,18 @@ public void tearDown() {
104104
@Test
105105
public void testGetRedirectFinalUrl() {
106106

107-
AsyncHttpClient c = null;
107+
AsyncHttpClientConfig.Builder bc =
108+
new AsyncHttpClientConfig.Builder();
109+
110+
bc.setAllowPoolingConnection(true);
111+
bc.setMaximumConnectionsPerHost(1);
112+
bc.setMaximumConnectionsTotal(1);
113+
bc.setConnectionTimeoutInMs(1000);
114+
bc.setRequestTimeoutInMs(1000);
115+
bc.setFollowRedirects(true);
116+
117+
AsyncHttpClient c = getAsyncHttpClient(bc.build());
108118
try {
109-
AsyncHttpClientConfig.Builder bc =
110-
new AsyncHttpClientConfig.Builder();
111-
112-
bc.setAllowPoolingConnection(true);
113-
bc.setMaximumConnectionsPerHost(1);
114-
bc.setMaximumConnectionsTotal(1);
115-
bc.setConnectionTimeoutInMs(1000);
116-
bc.setRequestTimeoutInMs(1000);
117-
bc.setFollowRedirects(true);
118-
119-
c = getAsyncHttpClient(bc.build());
120119

121120
RequestBuilder builder = new RequestBuilder("GET");
122121
builder.setUrl(servletEndpointRedirectUrl);
@@ -138,14 +137,9 @@ public void testGetRedirectFinalUrl() {
138137
fail("Should not get here, The request threw an exception");
139138
}
140139

141-
142-
}
143-
finally {
144-
// can hang here
145-
if (c != null) c.close();
140+
} finally {
141+
c.close();
146142
}
147-
148-
149143
}
150144

151145
protected abstract AsyncHttpProviderConfig getProviderConfig();
@@ -182,6 +176,4 @@ public void service(HttpServletRequest req, HttpServletResponse res) throws Serv
182176
os.close();
183177
}
184178
}
185-
186-
187179
}

api/src/test/java/org/asynchttpclient/async/RemoteSiteTest.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,13 @@ public void testMicrosoftCom() throws Throwable {
9090
@Test(groups = { "online", "default_provider" })
9191
public void testWwwMicrosoftCom() throws Throwable {
9292
AsyncHttpClient c = getAsyncHttpClient(new AsyncHttpClientConfig.Builder().setRequestTimeoutInMs(10000).build());
93-
94-
Response response = c.prepareGet("http://www.microsoft.com/").execute().get(10, TimeUnit.SECONDS);
95-
assertNotNull(response);
96-
assertEquals(response.getStatusCode(), 302);
93+
try {
94+
Response response = c.prepareGet("http://www.microsoft.com/").execute().get(10, TimeUnit.SECONDS);
95+
assertNotNull(response);
96+
assertEquals(response.getStatusCode(), 302);
97+
} finally {
98+
c.close();
99+
}
97100
}
98101

99102
@Test(groups = { "online", "default_provider" })
@@ -298,5 +301,4 @@ public Response onCompleted() throws Exception {
298301
c.close();
299302
}
300303
}
301-
302304
}

api/src/test/java/org/asynchttpclient/async/SimpleAsyncHttpClientTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,11 +217,14 @@ public void onBytesReceived(String url, long amount, long current, long total) {
217217

218218
@Test(groups = { "standalone", "default_provider" })
219219
public void testNullUrl() throws Exception {
220+
SimpleAsyncHttpClient client = null;
220221
try {
221-
new SimpleAsyncHttpClient.Builder().setProviderClass(getProviderClass()).build().derive().build();
222+
client = new SimpleAsyncHttpClient.Builder().setProviderClass(getProviderClass()).build().derive().build();
222223
assertTrue(true);
223224
} catch (NullPointerException ex) {
224225
fail();
226+
} finally {
227+
if (client != null) client.close();
225228
}
226229
}
227230

api/src/test/java/org/asynchttpclient/async/WebDavBasicTest.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,12 @@ protected String getTargetUrl() {
8383
@AfterMethod(alwaysRun = true)
8484
public void clean() throws InterruptedException, Exception {
8585
AsyncHttpClient c = getAsyncHttpClient(null);
86-
87-
Request deleteRequest = new RequestBuilder("DELETE").setUrl(getTargetUrl()).build();
88-
c.executeRequest(deleteRequest).get();
86+
try {
87+
Request deleteRequest = new RequestBuilder("DELETE").setUrl(getTargetUrl()).build();
88+
c.executeRequest(deleteRequest).get();
89+
} finally {
90+
c.close();
91+
}
8992
}
9093

9194
@AfterClass(alwaysRun = true)

api/src/test/java/org/asynchttpclient/websocket/ByteMessageTest.java

Lines changed: 44 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -214,46 +214,50 @@ public void onFragment(byte[] fragment, boolean last) {
214214

215215
public void echoFragments() throws Exception {
216216
AsyncHttpClient c = getAsyncHttpClient(null);
217-
final CountDownLatch latch = new CountDownLatch(1);
218-
final AtomicReference<byte[]> text = new AtomicReference<byte[]>(null);
219-
220-
WebSocket websocket = c.prepareGet(getTargetUrl()).execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new WebSocketByteListener() {
221-
222-
@Override
223-
public void onOpen(WebSocket websocket) {
224-
}
225-
226-
@Override
227-
public void onClose(WebSocket websocket) {
228-
latch.countDown();
229-
}
230-
231-
@Override
232-
public void onError(Throwable t) {
233-
t.printStackTrace();
234-
latch.countDown();
235-
}
236-
237-
@Override
238-
public void onMessage(byte[] message) {
239-
if (text.get() == null) {
240-
text.set(message);
241-
} else {
242-
byte[] n = new byte[text.get().length + message.length];
243-
System.arraycopy(text.get(), 0, n, 0, text.get().length);
244-
System.arraycopy(message, 0, n, text.get().length, message.length);
245-
text.set(n);
217+
try {
218+
final CountDownLatch latch = new CountDownLatch(1);
219+
final AtomicReference<byte[]> text = new AtomicReference<byte[]>(null);
220+
221+
WebSocket websocket = c.prepareGet(getTargetUrl()).execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new WebSocketByteListener() {
222+
223+
@Override
224+
public void onOpen(WebSocket websocket) {
246225
}
247-
latch.countDown();
248-
}
249-
250-
@Override
251-
public void onFragment(byte[] fragment, boolean last) {
252-
}
253-
}).build()).get();
254-
websocket.stream("ECHO".getBytes(), false);
255-
websocket.stream("ECHO".getBytes(), true);
256-
latch.await();
257-
assertEquals(text.get(), "ECHOECHO".getBytes());
226+
227+
@Override
228+
public void onClose(WebSocket websocket) {
229+
latch.countDown();
230+
}
231+
232+
@Override
233+
public void onError(Throwable t) {
234+
t.printStackTrace();
235+
latch.countDown();
236+
}
237+
238+
@Override
239+
public void onMessage(byte[] message) {
240+
if (text.get() == null) {
241+
text.set(message);
242+
} else {
243+
byte[] n = new byte[text.get().length + message.length];
244+
System.arraycopy(text.get(), 0, n, 0, text.get().length);
245+
System.arraycopy(message, 0, n, text.get().length, message.length);
246+
text.set(n);
247+
}
248+
latch.countDown();
249+
}
250+
251+
@Override
252+
public void onFragment(byte[] fragment, boolean last) {
253+
}
254+
}).build()).get();
255+
websocket.stream("ECHO".getBytes(), false);
256+
websocket.stream("ECHO".getBytes(), true);
257+
latch.await();
258+
assertEquals(text.get(), "ECHOECHO".getBytes());
259+
} finally {
260+
c.close();
261+
}
258262
}
259263
}

0 commit comments

Comments
 (0)