From d0a0b45a6ef67d964b0e652217372b4f54411c97 Mon Sep 17 00:00:00 2001 From: drdev Date: Mon, 25 Aug 2014 22:54:53 +0000 Subject: [PATCH] Add timeout to reading URL from website --- .../src/main/java/forge/util/FileUtil.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/forge-core/src/main/java/forge/util/FileUtil.java b/forge-core/src/main/java/forge/util/FileUtil.java index 7cb87aacba1..9036ae25d19 100644 --- a/forge-core/src/main/java/forge/util/FileUtil.java +++ b/forge-core/src/main/java/forge/util/FileUtil.java @@ -25,6 +25,7 @@ import java.net.URL; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.concurrent.Callable; import java.util.regex.Pattern; /** @@ -248,17 +249,18 @@ public final class FileUtil { } public static List readFile(final URL url) { - List lines = new ArrayList(); - try { - BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); - String line; - while ((line = in.readLine()) != null) { - lines.add(line); + final List lines = new ArrayList(); + ThreadUtil.executeWithTimeout(new Callable() { + @Override + public Void call() throws Exception { + BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); + String line; + while ((line = in.readLine()) != null) { + lines.add(line); + } + return null; } - } - catch (Exception e) { - e.printStackTrace(); - } + }, 5000); //abort reading file if it takes longer than 5 seconds return lines; } }