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; } }