diff --git a/http-clients/url-connection-client/src/main/java/software/amazon/awssdk/http/urlconnection/UrlConnectionHttpClient.java b/http-clients/url-connection-client/src/main/java/software/amazon/awssdk/http/urlconnection/UrlConnectionHttpClient.java index 900a858b3caa..3c24d83f79b1 100644 --- a/http-clients/url-connection-client/src/main/java/software/amazon/awssdk/http/urlconnection/UrlConnectionHttpClient.java +++ b/http-clients/url-connection-client/src/main/java/software/amazon/awssdk/http/urlconnection/UrlConnectionHttpClient.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.io.InputStream; +import java.io.UncheckedIOException; import java.net.HttpURLConnection; import java.net.URI; import java.security.KeyManagementException; @@ -208,8 +209,12 @@ private RequestCallable(HttpURLConnection connection, HttpExecuteRequest request public HttpExecuteResponse call() throws IOException { connection.connect(); - request.contentStreamProvider().ifPresent(provider -> - invokeSafely(() -> IoUtils.copy(provider.newStream(), connection.getOutputStream()))); + try { + request.contentStreamProvider().ifPresent(provider -> + invokeSafely(() -> IoUtils.copy(provider.newStream(), connection.getOutputStream()))); + } catch(UncheckedIOException e) { + throw e.getCause(); + } int responseCode = getResponseCodeSafely(connection); boolean isErrorResponse = HttpStatusFamily.of(responseCode).isOneOf(CLIENT_ERROR, SERVER_ERROR);