From c6b49545ffa958c0b18cf4ec45dd4222688ffda9 Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Sun, 19 Aug 2018 12:13:39 +0800 Subject: [PATCH] Fix #424 --- .../jackhuang/hmcl/download/game/LibraryDownloadTask.java | 2 +- HMCLCore/src/main/java/org/jackhuang/hmcl/util/IOUtils.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/LibraryDownloadTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/LibraryDownloadTask.java index cebb4823d..9c4c4d868 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/LibraryDownloadTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/game/LibraryDownloadTask.java @@ -142,7 +142,7 @@ public final class LibraryDownloadTask extends Task { JarInputStream jar = new JarInputStream(new ByteArrayInputStream(data)); JarEntry entry = jar.getNextJarEntry(); while (entry != null) { - byte[] eData = IOUtils.readFullyAsByteArray(jar); + byte[] eData = IOUtils.readFullyWithoutClosing(jar); if (entry.getName().equals("checksums.sha1")) { hashes = new String(eData, Charset.forName("UTF-8")).split("\n"); } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IOUtils.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IOUtils.java index ccc89e25a..999b8c53f 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IOUtils.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/IOUtils.java @@ -31,6 +31,12 @@ public final class IOUtils { public static final int DEFAULT_BUFFER_SIZE = 8 * 1024; + public static byte[] readFullyWithoutClosing(InputStream stream) throws IOException { + ByteArrayOutputStream result = new ByteArrayOutputStream(); + copyTo(stream, result); + return result.toByteArray(); + } + public static ByteArrayOutputStream readFully(InputStream stream) throws IOException { try (InputStream is = stream) { ByteArrayOutputStream result = new ByteArrayOutputStream();