From f55b030e843ed8308727fcad61c66cef3c2b4edd Mon Sep 17 00:00:00 2001 From: Hannes <13hannes11@gmail.com> Date: Fri, 10 Nov 2017 01:11:06 +0100 Subject: [PATCH] added errorCounter to be more tollerent to a missing image file --- .../xkcd/downloader/ImageDownloader.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/xkcd_downloader/src/org/kuchelmeister/xkcd/downloader/ImageDownloader.java b/xkcd_downloader/src/org/kuchelmeister/xkcd/downloader/ImageDownloader.java index 244777e..60489bd 100644 --- a/xkcd_downloader/src/org/kuchelmeister/xkcd/downloader/ImageDownloader.java +++ b/xkcd_downloader/src/org/kuchelmeister/xkcd/downloader/ImageDownloader.java @@ -10,7 +10,8 @@ import java.util.List; public class ImageDownloader { - List downloadedImages; + private final List downloadedImages; + public static final int ERR_EXIT_THRESHOLD = 10; // exit after 10 error is a row public ImageDownloader() { downloadedImages = new LinkedList<>(); @@ -18,8 +19,8 @@ public class ImageDownloader { private void downloadImage(final String url, final String folderPath, final int counter) throws IOException { final InputStream in = new URL(url).openStream(); - final String fileName = "Comic_" + counter;// url.substring(url.lastIndexOf("/")).replaceAll("[^A-Za-z0-9.]", - // ""); + final String fileName = "Comic_" + counter; + // url.substring(url.lastIndexOf("/")).replaceAll("[^A-Za-z0-9.]", ""); downloadedImages.add(folderPath + fileName); @@ -29,12 +30,17 @@ public class ImageDownloader { } public void downloadAllImages(final List images, final String folderPath) { + int errCounter = 0; for (int i = 0; i < images.size(); i++) { try { this.downloadImage(images.get(i), folderPath, i); + errCounter = 0; } catch (final IOException e) { e.printStackTrace(); - return; + errCounter++; + if (errCounter > ERR_EXIT_THRESHOLD) { + return; + } } } }