Skip to content

Commit c844a6b

Browse files
committed
Fixed Files.walk stream not getting closed
1 parent 9e8edcf commit c844a6b

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

src/main/java/dev/latvian/apps/tinyserver/ServerRegistry.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,15 @@ default void dynamicFiles(String path, Path directory, FileResponseHandler respo
7878
default void staticFiles(String path, Path directory, FileResponseHandler responseHandler, boolean autoIndex) throws IOException {
7979
path = path.endsWith("/") ? path : (path + "/");
8080

81-
for (var file : Files.walk(directory).filter(Files::isReadable).toList()) {
82-
var rpath = directory.relativize(file).toString();
83-
84-
if (Files.isRegularFile(file)) {
85-
singleFile(path + rpath, file, responseHandler);
86-
} else if (autoIndex && Files.isDirectory(file)) {
87-
get(path + rpath, new FileIndexHandler<>(directory, file, responseHandler));
81+
try (var stream = Files.walk(directory)) {
82+
for (var file : stream.filter(Files::isReadable).toList()) {
83+
var rpath = directory.relativize(file).toString();
84+
85+
if (Files.isRegularFile(file)) {
86+
singleFile(path + rpath, file, responseHandler);
87+
} else if (autoIndex && Files.isDirectory(file)) {
88+
get(path + rpath, new FileIndexHandler<>(directory, file, responseHandler));
89+
}
8890
}
8991
}
9092
}

0 commit comments

Comments
 (0)