Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit701d891

Browse files
committed
Add tests properly demonstratingAsyncHttpClient#1134 issue in AHC 1.9 on both providers
1 parent282298d commit701d891

File tree

3 files changed

+118
-77
lines changed

3 files changed

+118
-77
lines changed

‎src/test/java/com/ning/http/client/async/AsyncProvidersBasicTest.java‎

Lines changed: 99 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,14 @@
1515
*/
1616
packagecom.ning.http.client.async;
1717

18-
importstaticjava.nio.charset.StandardCharsets.*;
1918
importstaticcom.ning.http.util.DateUtils.millisTime;
2019
importstaticcom.ning.http.util.MiscUtils.isNonEmpty;
21-
importstaticorg.testng.Assert.*;
20+
importstaticjava.nio.charset.StandardCharsets.ISO_8859_1;
21+
importstaticorg.testng.Assert.assertEquals;
22+
importstaticorg.testng.Assert.assertNotNull;
23+
importstaticorg.testng.Assert.assertNull;
24+
importstaticorg.testng.Assert.assertTrue;
25+
importstaticorg.testng.Assert.fail;
2226

2327
importorg.testng.Assert;
2428
importorg.testng.annotations.Test;
@@ -39,6 +43,8 @@
3943
importcom.ning.http.client.multipart.Part;
4044
importcom.ning.http.client.multipart.StringPart;
4145

46+
importjavax.net.ssl.SSLException;
47+
4248
importjava.io.ByteArrayInputStream;
4349
importjava.io.IOException;
4450
importjava.net.ConnectException;
@@ -486,7 +492,8 @@ public Response onCompleted(Response response) throws Exception {
486492
@Test(groups = {"standalone","default_provider","async" })
487493
publicvoidasyncDoPostBodyIsoTest()throwsThrowable {
488494
try (AsyncHttpClientclient =getAsyncHttpClient(null)) {
489-
Responser =client.preparePost(getTargetUrl()).addHeader("X-ISO","true").setBody("\u017D\u017D\u017D\u017D\u017D\u017D").execute().get();
495+
Responser =client.preparePost(getTargetUrl()).addHeader("X-ISO","true").setBody("\u017D\u017D\u017D\u017D\u017D\u017D")
496+
.execute().get();
490497
assertEquals(r.getResponseBody().getBytes(ISO_8859_1),"\u017D\u017D\u017D\u017D\u017D\u017D".getBytes(ISO_8859_1));
491498
}
492499
}
@@ -641,7 +648,7 @@ public Response onCompleted(Response response) throws Exception {
641648
}
642649

643650
protectedabstractStringgeneratedAcceptEncodingHeader();
644-
651+
645652
@Test(groups = {"standalone","default_provider","async" })
646653
publicvoidasyncDoPostBasicGZIPTest()throwsThrowable {
647654
AsyncHttpClientConfigcf =newAsyncHttpClientConfig.Builder().setCompressionEnforced(true).build();
@@ -694,16 +701,17 @@ public void asyncDoPostProxyTest() throws Throwable {
694701
}
695702
sb.setLength(sb.length() -1);
696703

697-
Responseresponse =client.preparePost(getTargetUrl()).setHeaders(h).setBody(sb.toString()).execute(newAsyncCompletionHandler<Response>() {
698-
@Override
699-
publicResponseonCompleted(Responseresponse)throwsException {
700-
returnresponse;
701-
}
704+
Responseresponse =client.preparePost(getTargetUrl()).setHeaders(h).setBody(sb.toString())
705+
.execute(newAsyncCompletionHandler<Response>() {
706+
@Override
707+
publicResponseonCompleted(Responseresponse)throwsException {
708+
returnresponse;
709+
}
702710

703-
@Override
704-
publicvoidonThrowable(Throwablet) {
705-
}
706-
}).get();
711+
@Override
712+
publicvoidonThrowable(Throwablet) {
713+
}
714+
}).get();
707715

708716
assertEquals(response.getStatusCode(),200);
709717
assertEquals(response.getHeader("X-Connection"),"keep-alive");
@@ -720,7 +728,8 @@ public void asyncRequestVirtualServerPOSTTest() throws Throwable {
720728
for (inti =0;i <5;i++) {
721729
m.put("param_" +i,Arrays.asList("value_" +i));
722730
}
723-
Requestrequest =newRequestBuilder("POST").setUrl(getTargetUrl()).setHeaders(h).setFormParams(m).setVirtualHost("localhost:" +port1).build();
731+
Requestrequest =newRequestBuilder("POST").setUrl(getTargetUrl()).setHeaders(h).setFormParams(m)
732+
.setVirtualHost("localhost:" +port1).build();
724733

725734
Responseresponse =client.executeRequest(request,newAsyncCompletionHandlerAdapter()).get();
726735

@@ -748,7 +757,8 @@ public void asyncDoPutTest() throws Throwable {
748757
}
749758
sb.setLength(sb.length() -1);
750759

751-
Responseresponse =client.preparePut(getTargetUrl()).setHeaders(h).setBody(sb.toString()).execute(newAsyncCompletionHandlerAdapter()).get();
760+
Responseresponse =client.preparePut(getTargetUrl()).setHeaders(h).setBody(sb.toString())
761+
.execute(newAsyncCompletionHandlerAdapter()).get();
752762

753763
assertEquals(response.getStatusCode(),200);
754764
}
@@ -803,11 +813,12 @@ public void asyncDoPostDelayCancelTest() throws Throwable {
803813
StringBuildersb =newStringBuilder();
804814
sb.append("LockThread=true");
805815

806-
Future<Response>future =client.preparePost(getTargetUrl()).setHeaders(h).setBody(sb.toString()).execute(newAsyncCompletionHandlerAdapter() {
807-
@Override
808-
publicvoidonThrowable(Throwablet) {
809-
}
810-
});
816+
Future<Response>future =client.preparePost(getTargetUrl()).setHeaders(h).setBody(sb.toString())
817+
.execute(newAsyncCompletionHandlerAdapter() {
818+
@Override
819+
publicvoidonThrowable(Throwablet) {
820+
}
821+
});
811822

812823
// Make sure we are connected before cancelling. I know, Thread.sleep
813824
// sucks!
@@ -827,12 +838,13 @@ public void asyncDoPostDelayBytesTest() throws Throwable {
827838
sb.append("LockThread=true");
828839

829840
try {
830-
Future<Response>future =client.preparePost(getTargetUrl()).setHeaders(h).setBody(sb.toString()).execute(newAsyncCompletionHandlerAdapter() {
831-
@Override
832-
publicvoidonThrowable(Throwablet) {
833-
t.printStackTrace();
834-
}
835-
});
841+
Future<Response>future =client.preparePost(getTargetUrl()).setHeaders(h).setBody(sb.toString())
842+
.execute(newAsyncCompletionHandlerAdapter() {
843+
@Override
844+
publicvoidonThrowable(Throwablet) {
845+
t.printStackTrace();
846+
}
847+
});
836848

837849
future.get(10,TimeUnit.SECONDS);
838850
}catch (ExecutionExceptionex) {
@@ -862,7 +874,8 @@ public void asyncDoPostNullBytesTest() throws Throwable {
862874
}
863875
sb.setLength(sb.length() -1);
864876

865-
Future<Response>future =client.preparePost(getTargetUrl()).setHeaders(h).setBody(sb.toString()).execute(newAsyncCompletionHandlerAdapter());
877+
Future<Response>future =client.preparePost(getTargetUrl()).setHeaders(h).setBody(sb.toString())
878+
.execute(newAsyncCompletionHandlerAdapter());
866879

867880
Responseresponse =future.get();
868881
Assert.assertNotNull(response);
@@ -912,12 +925,13 @@ public void asyncConnectInvalidFuture() throws Throwable {
912925
finalAtomicIntegercount =newAtomicInteger();
913926
for (inti =0;i <20;i++) {
914927
try {
915-
Responseresponse =client.preparePost(String.format("http://127.0.0.1:%d/",dummyPort)).execute(newAsyncCompletionHandlerAdapter() {
916-
@Override
917-
publicvoidonThrowable(Throwablet) {
918-
count.incrementAndGet();
919-
}
920-
}).get();
928+
Responseresponse =client.preparePost(String.format("http://127.0.0.1:%d/",dummyPort))
929+
.execute(newAsyncCompletionHandlerAdapter() {
930+
@Override
931+
publicvoidonThrowable(Throwablet) {
932+
count.incrementAndGet();
933+
}
934+
}).get();
921935
assertNull(response,"Should have thrown ExecutionException");
922936
}catch (ExecutionExceptionex) {
923937
Throwablecause =ex.getCause();
@@ -935,12 +949,13 @@ public void asyncConnectInvalidPortFuture() throws Throwable {
935949
try (AsyncHttpClientclient =getAsyncHttpClient(null)) {
936950
intdummyPort =findFreePort();
937951
try {
938-
Responseresponse =client.preparePost(String.format("http://127.0.0.1:%d/",dummyPort)).execute(newAsyncCompletionHandlerAdapter() {
939-
@Override
940-
publicvoidonThrowable(Throwablet) {
941-
t.printStackTrace();
942-
}
943-
}).get();
952+
Responseresponse =client.preparePost(String.format("http://127.0.0.1:%d/",dummyPort))
953+
.execute(newAsyncCompletionHandlerAdapter() {
954+
@Override
955+
publicvoidonThrowable(Throwablet) {
956+
t.printStackTrace();
957+
}
958+
}).get();
944959
assertNull(response,"Should have thrown ExecutionException");
945960
}catch (ExecutionExceptionex) {
946961
Throwablecause =ex.getCause();
@@ -958,12 +973,13 @@ public void asyncConnectInvalidPort() throws Throwable {
958973
intport =findFreePort();
959974

960975
try {
961-
Responseresponse =client.preparePost(String.format("http://127.0.0.1:%d/",port)).execute(newAsyncCompletionHandlerAdapter() {
962-
@Override
963-
publicvoidonThrowable(Throwablet) {
964-
t.printStackTrace();
965-
}
966-
}).get();
976+
Responseresponse =client.preparePost(String.format("http://127.0.0.1:%d/",port))
977+
.execute(newAsyncCompletionHandlerAdapter() {
978+
@Override
979+
publicvoidonThrowable(Throwablet) {
980+
t.printStackTrace();
981+
}
982+
}).get();
967983
assertNull(response,"No ExecutionException was thrown");
968984
}catch (ExecutionExceptionex) {
969985
assertEquals(ex.getCause().getClass(),ConnectException.class);
@@ -994,7 +1010,8 @@ public void onThrowable(Throwable t) {
9941010
}
9951011
}
9961012

997-
@Test(groups = {"online","default_provider","async" },expectedExceptions = {ConnectException.class,UnresolvedAddressException.class,UnknownHostException.class })
1013+
@Test(groups = {"online","default_provider","async" },expectedExceptions = {ConnectException.class,
1014+
UnresolvedAddressException.class,UnknownHostException.class })
9981015
publicvoidasyncConnectInvalidHandlerHost()throwsThrowable {
9991016
try (AsyncHttpClientclient =getAsyncHttpClient(null)) {
10001017

@@ -1027,15 +1044,16 @@ public void asyncConnectInvalidFuturePort() throws Throwable {
10271044
intport =findFreePort();
10281045

10291046
try {
1030-
Responseresponse =client.prepareGet(String.format("http://127.0.0.1:%d/",port)).execute(newAsyncCompletionHandlerAdapter() {
1031-
@Override
1032-
publicvoidonThrowable(Throwablet) {
1033-
called.set(true);
1034-
if (tinstanceofConnectException) {
1035-
rightCause.set(true);
1036-
}
1037-
}
1038-
}).get();
1047+
Responseresponse =client.prepareGet(String.format("http://127.0.0.1:%d/",port))
1048+
.execute(newAsyncCompletionHandlerAdapter() {
1049+
@Override
1050+
publicvoidonThrowable(Throwablet) {
1051+
called.set(true);
1052+
if (tinstanceofConnectException) {
1053+
rightCause.set(true);
1054+
}
1055+
}
1056+
}).get();
10391057
assertNull(response,"No ExecutionException was thrown");
10401058
}catch (ExecutionExceptionex) {
10411059
assertEquals(ex.getCause().getClass(),ConnectException.class);
@@ -1383,7 +1401,8 @@ public void testAsyncHttpProviderConfig() throws Exception {
13831401

13841402
@Test(groups = {"standalone","default_provider" })
13851403
publicvoididleRequestTimeoutTest()throwsException {
1386-
try (AsyncHttpClientclient =getAsyncHttpClient(newAsyncHttpClientConfig.Builder().setPooledConnectionIdleTimeout(5000).setRequestTimeout(10000).build())) {
1404+
try (AsyncHttpClientclient =getAsyncHttpClient(newAsyncHttpClientConfig.Builder().setPooledConnectionIdleTimeout(5000)
1405+
.setRequestTimeout(10000).build())) {
13871406
FluentCaseInsensitiveStringsMaph =newFluentCaseInsensitiveStringsMap();
13881407
h.add("Content-Type","application/x-www-form-urlencoded");
13891408
h.add("LockThread","true");
@@ -1420,17 +1439,18 @@ public void asyncDoPostCancelTest() throws Throwable {
14201439
finalAtomicReference<CancellationException>ex =newAtomicReference<>();
14211440
ex.set(null);
14221441
try {
1423-
Future<Response>future =client.preparePost(getTargetUrl()).setHeaders(h).setBody(sb.toString()).execute(newAsyncCompletionHandlerAdapter() {
1442+
Future<Response>future =client.preparePost(getTargetUrl()).setHeaders(h).setBody(sb.toString())
1443+
.execute(newAsyncCompletionHandlerAdapter() {
14241444

1425-
@Override
1426-
publicvoidonThrowable(Throwablet) {
1427-
if (tinstanceofCancellationException) {
1428-
ex.set((CancellationException)t);
1429-
}
1430-
t.printStackTrace();
1431-
}
1445+
@Override
1446+
publicvoidonThrowable(Throwablet) {
1447+
if (tinstanceofCancellationException) {
1448+
ex.set((CancellationException)t);
1449+
}
1450+
t.printStackTrace();
1451+
}
14321452

1433-
});
1453+
});
14341454

14351455
Thread.sleep(1000);
14361456
future.cancel(true);
@@ -1444,7 +1464,7 @@ public void onThrowable(Throwable t) {
14441464
protectedStringgetBrokenTargetUrl() {
14451465
returnString.format("http:127.0.0.1:%d/foo/test",port1);
14461466
}
1447-
1467+
14481468
@Test(groups = {"standalone","default_provider" },expectedExceptions = {NullPointerException.class })
14491469
publicvoidinvalidUri()throwsException {
14501470
try (AsyncHttpClientclient =getAsyncHttpClient(null)) {
@@ -1479,5 +1499,18 @@ public void mirrorByteTest() throws Throwable {
14791499
}
14801500
}
14811501

1502+
@Test
1503+
publicvoidrequestingPlainHttpEndpointOverHttpsThrowsSslException()throwsThrowable {
1504+
try (AsyncHttpClientclient =getAsyncHttpClient(null)) {
1505+
client.prepareGet(getTargetUrl().replace("http","https")).execute().get();
1506+
fail("Request shouldn't succeed");
1507+
}catch (ExecutionExceptione) {
1508+
Throwablecause =e.getCause();
1509+
assertTrue(causeinstanceofConnectException,"Cause should be a ConnectException but got a " +cause.getClass().getName());
1510+
ThrowablerootCause =e.getCause().getCause();
1511+
assertTrue(rootCauseinstanceofSSLException,"Root cause should be a SslException but got a " +rootCause.getClass().getName());
1512+
}
1513+
}
1514+
14821515
protectedabstractAsyncHttpProviderConfig<?, ?>getProviderConfig();
14831516
}

‎src/test/java/com/ning/http/client/async/grizzly/GrizzlyAsyncProviderBasicTest.java‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
importorg.glassfish.grizzly.filterchain.FilterChainBuilder;
1919
importorg.glassfish.grizzly.nio.transport.TCPNIOTransport;
2020
importorg.glassfish.grizzly.strategies.SameThreadIOStrategy;
21+
importorg.testng.annotations.Test;
2122

2223
importcom.ning.http.client.AsyncHttpClient;
2324
importcom.ning.http.client.AsyncHttpClientConfig;
@@ -51,4 +52,9 @@ public void customize(TCPNIOTransport transport, FilterChainBuilder builder) {
5152
protectedStringgeneratedAcceptEncodingHeader() {
5253
return"gzip";
5354
}
55+
56+
@Test(enabled =false)
57+
publicvoidrequestingPlainHttpEndpointOverHttpsThrowsSslException()throwsThrowable {
58+
super.requestingPlainHttpEndpointOverHttpsThrowsSslException();
59+
}
5460
}

‎src/test/java/com/ning/http/client/async/netty/NettyAsyncProviderBasicTest.java‎

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,20 +60,22 @@ public void testNewConnectionEventsFired() throws InterruptedException, TimeoutE
6060
client.executeRequest(request,handler).get(3,TimeUnit.SECONDS);
6161
handler.waitForCompletion();
6262

63-
List<String>expectedEvents =Arrays.asList(
64-
"PoolConnection",
65-
"OpenConnection",
66-
"DnsResolved",
67-
"ConnectionOpen",
68-
"SendRequest",
69-
"HeaderWriteCompleted",
70-
"StatusReceived",
71-
"HeadersReceived",
63+
List<String>expectedEvents =Arrays.asList("PoolConnection",//
64+
"OpenConnection",//
65+
"DnsResolved",//
66+
"ConnectionOpen",//
67+
"SendRequest",//
68+
"HeaderWriteCompleted",//
69+
"StatusReceived",//
70+
"HeadersReceived",//
7271
"Completed");
7372

74-
assertEquals(handler.firedEvents,expectedEvents,
75-
"Got: " +Joiner.on(", ").join(handler.firedEvents));
73+
assertEquals(handler.firedEvents,expectedEvents,"Got: " +Joiner.on(", ").join(handler.firedEvents));
7674
}
75+
}
7776

77+
@Test(enabled =false)
78+
publicvoidrequestingPlainHttpEndpointOverHttpsThrowsSslException()throwsThrowable {
79+
super.requestingPlainHttpEndpointOverHttpsThrowsSslException();
7880
}
7981
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp