Skip to content

Commit c74056a

Browse files
committed
add logging to flaky test
1 parent c6102b5 commit c74056a

File tree

1 file changed

+25
-11
lines changed

1 file changed

+25
-11
lines changed

awssdkv2-java11-async-client/src/test/java/com/sigpwned/software/amazon/awssdk/http/java11/Expect100ContinueTest.java

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
import java.io.InterruptedIOException;
1111
import java.io.UncheckedIOException;
1212
import java.net.URI;
13+
import java.net.http.HttpConnectTimeoutException;
1314
import java.nio.ByteBuffer;
15+
import java.time.Duration;
1416
import java.util.concurrent.ExecutionException;
1517
import java.util.concurrent.atomic.AtomicReference;
1618
import javax.servlet.http.HttpServletRequest;
@@ -49,7 +51,7 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques
4951
}
5052
};
5153

52-
try (SdkAsyncHttpClient client = Java11AsyncHttpClient.create();
54+
try (SdkAsyncHttpClient client = createClient();
5355
EmbeddedServer server = new EmbeddedServer(handler)) {
5456
HttpExecuteResponse response = sendRequest(client, server);
5557
assertThat(response.httpResponse().statusCode()).isEqualTo(200);
@@ -70,7 +72,7 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques
7072
}
7173
};
7274

73-
try (SdkAsyncHttpClient client = Java11AsyncHttpClient.create();
75+
try (SdkAsyncHttpClient client = createClient();
7476
EmbeddedServer server = new EmbeddedServer(handler)) {
7577
HttpExecuteResponse response = sendRequest(client, server);
7678
assertThat(response.httpResponse().statusCode()).isEqualTo(204);
@@ -91,7 +93,7 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques
9193
}
9294
};
9395

94-
try (SdkAsyncHttpClient client = Java11AsyncHttpClient.create();
96+
try (SdkAsyncHttpClient client = createClient();
9597
EmbeddedServer server = new EmbeddedServer(handler)) {
9698
HttpExecuteResponse response = sendRequest(client, server);
9799
assertThat(response.httpResponse().statusCode()).isEqualTo(304);
@@ -112,7 +114,7 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques
112114
}
113115
};
114116

115-
try (SdkAsyncHttpClient client = Java11AsyncHttpClient.create();
117+
try (SdkAsyncHttpClient client = createClient();
116118
EmbeddedServer server = new EmbeddedServer(handler)) {
117119
HttpExecuteResponse response = sendRequest(client, server);
118120
assertThat(response.httpResponse().statusCode()).isEqualTo(417);
@@ -134,7 +136,7 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques
134136
}
135137
};
136138

137-
try (SdkAsyncHttpClient client = Java11AsyncHttpClient.create();
139+
try (SdkAsyncHttpClient client = createClient();
138140
EmbeddedServer server = new EmbeddedServer(handler)) {
139141
HttpExecuteResponse response = sendRequest(client, server);
140142
assertThat(response.httpResponse().statusCode()).isEqualTo(500);
@@ -158,7 +160,7 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques
158160
}
159161
};
160162

161-
try (SdkAsyncHttpClient client = Java11AsyncHttpClient.create();
163+
try (SdkAsyncHttpClient client = createClient();
162164
EmbeddedServer server = new EmbeddedServer(handler)) {
163165
HttpExecuteResponse response = sendRequest(client, server);
164166
assertThat(response.httpResponse().statusCode()).isEqualTo(500);
@@ -182,7 +184,7 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques
182184
}
183185
};
184186

185-
try (SdkAsyncHttpClient client = Java11AsyncHttpClient.create();
187+
try (SdkAsyncHttpClient client = createClient();
186188
EmbeddedServer server = new EmbeddedServer(handler)) {
187189
HttpExecuteResponse response = sendRequest(client, server);
188190
assertThat(response.httpResponse().statusCode()).isEqualTo(400);
@@ -203,7 +205,7 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques
203205
}
204206
};
205207

206-
try (SdkAsyncHttpClient client = Java11AsyncHttpClient.create();
208+
try (SdkAsyncHttpClient client = createClient();
207209
EmbeddedServer server = new EmbeddedServer(handler)) {
208210
assertThatThrownBy(() -> sendRequest(client, server, true)).isInstanceOf(
209211
IOException.class);
@@ -226,7 +228,7 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques
226228
}
227229
};
228230

229-
try (SdkAsyncHttpClient client = Java11AsyncHttpClient.create();
231+
try (SdkAsyncHttpClient client = createClient();
230232
EmbeddedServer server = new EmbeddedServer(handler)) {
231233
assertThatThrownBy(() -> sendRequest(client, server, true)).isInstanceOf(
232234
UncheckedIOException.class);
@@ -243,10 +245,11 @@ private HttpExecuteResponse sendRequest(SdkAsyncHttpClient client, EmbeddedServe
243245
throws IOException {
244246
final AtomicReference<SdkHttpResponse> responseBuffer = new AtomicReference<>();
245247
final ByteArrayOutputStream bodyBuffer = new ByteArrayOutputStream();
248+
final URI serverUri=server.uri();
246249

247250
try {
248251
SdkHttpRequest.Builder requestBuilder = SdkHttpRequest.builder()
249-
.uri(server.uri())
252+
.uri(serverUri)
250253
.putHeader("Expect", "100-continue")
251254
.method(SdkHttpMethod.PUT);
252255
client.execute(AsyncExecuteRequest.builder()
@@ -283,7 +286,12 @@ public void onError(Throwable error) {
283286
throw new InterruptedIOException();
284287
} catch (ExecutionException e) {
285288
Throwable cause = e.getCause();
286-
if (cause instanceof IOException) {
289+
if (cause instanceof HttpConnectTimeoutException) {
290+
e.printStackTrace(System.err);
291+
System.err.println(serverUri);
292+
System.err.println(server.uri());
293+
throw (HttpConnectTimeoutException) cause;
294+
} else if (cause instanceof IOException) {
287295
throw (IOException) cause;
288296
} else if (cause instanceof RuntimeException) {
289297
throw (RuntimeException) cause;
@@ -299,6 +307,12 @@ public void onError(Throwable error) {
299307
.build();
300308
}
301309

310+
private SdkAsyncHttpClient createClient() {
311+
return Java11AsyncHttpClient.builder()
312+
.connectionTimeout(Duration.ofSeconds(5L))
313+
.build();
314+
}
315+
302316
private static class EmbeddedServer implements SdkAutoCloseable {
303317
// TODO It might be nice to refactor this to use WireMock?
304318

0 commit comments

Comments
 (0)