From d94b3385c7c2ebbd12081b3ab6e2aea18a899e2b Mon Sep 17 00:00:00 2001 From: Glavo Date: Wed, 8 Sep 2021 11:04:36 +0800 Subject: [PATCH] fix: DirectoryStream not closed --- .../jackhuang/hmcl/util/platform/JavaVersion.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/JavaVersion.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/JavaVersion.java index 649873d35..b2763640a 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/JavaVersion.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/JavaVersion.java @@ -24,10 +24,7 @@ import org.jackhuang.hmcl.util.versioning.VersionNumber; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; -import java.nio.file.Files; -import java.nio.file.InvalidPathException; -import java.nio.file.Path; -import java.nio.file.Paths; +import java.nio.file.*; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CountDownLatch; @@ -294,7 +291,13 @@ public final class JavaVersion { private static Stream listDirectory(Path directory) throws IOException { if (Files.isDirectory(directory)) { - return Files.list(directory); + try (final DirectoryStream subDirs = Files.newDirectoryStream(directory)) { + final ArrayList paths = new ArrayList<>(); + for (Path subDir : subDirs) { + paths.add(subDir); + } + return paths.stream(); + } } else { return Stream.empty(); }