diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/DownloadManager.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/DownloadManager.java index 65ef8d2f8f7b5d..0bfdf540aba5eb 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/DownloadManager.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/DownloadManager.java @@ -44,6 +44,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.net.URL; +import java.net.UnknownHostException; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -381,7 +382,9 @@ private boolean shouldRetryDownload(IOException e, int attempt) { } private boolean isRetryableException(Throwable e) { - return e instanceof ContentLengthMismatchException || e instanceof SocketException; + return e instanceof ContentLengthMismatchException + || e instanceof SocketException + || e instanceof UnknownHostException; } /** diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/HttpConnector.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/HttpConnector.java index 20261c1d5d81e0..ebcbf15aa11e69 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/HttpConnector.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/HttpConnector.java @@ -158,7 +158,9 @@ URLConnection connect( } catch (UnknownHostException e) { String message = "Unknown host: " + e.getMessage(); eventHandler.handle(Event.progress(message)); - throw new UnrecoverableHttpException(message); + IOException httpException = new UnrecoverableHttpException(message); + httpException.addSuppressed(e); + throw httpException; } catch (IllegalArgumentException e) { // This will happen if the user does something like specify a port greater than 2^16-1. throw new UnrecoverableHttpException(e.getMessage());