From 5fe8e31d4351a9d26db81e799defd8225e883f3e Mon Sep 17 00:00:00 2001 From: Dave Borowitz Date: Fri, 5 Jan 2018 13:02:47 -0500 Subject: [PATCH] Ensure DirectoryStream is closed promptly From the javadoc for Files.list: "The returned stream encapsulates a DirectoryStream. If timely disposal of file system resources is required, the try-with-resources construct should be used to ensure that the stream's close method is invoked after the stream operations are completed." This is the only call to Files#newDirectoryStream that is not already in a try-with-resources. Change-Id: I91e6c56b5d74e8435457ad6ed9e6b4b24d2aa14e (cherry picked from commit 1c16ea4601920c9dbc7a0202efc20137e1a63d55) --- .../jgit/internal/storage/file/GC.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java index 928e52d6b..60d665274 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java @@ -966,19 +966,19 @@ private void deleteTempPacksIdx() { Path packDir = Paths.get(repo.getObjectsDirectory().getAbsolutePath(), "pack"); //$NON-NLS-1$ Instant threshold = Instant.now().minus(1, ChronoUnit.DAYS); - try { - Files.newDirectoryStream(packDir, "gc_*_tmp") //$NON-NLS-1$ - .forEach(t -> { - try { - Instant lastModified = Files.getLastModifiedTime(t) - .toInstant(); - if (lastModified.isBefore(threshold)) { - Files.deleteIfExists(t); - } - } catch (IOException e) { - LOG.error(e.getMessage(), e); - } - }); + try (DirectoryStream stream = + Files.newDirectoryStream(packDir, "gc_*_tmp")) { //$NON-NLS-1$ + stream.forEach(t -> { + try { + Instant lastModified = Files.getLastModifiedTime(t) + .toInstant(); + if (lastModified.isBefore(threshold)) { + Files.deleteIfExists(t); + } + } catch (IOException e) { + LOG.error(e.getMessage(), e); + } + }); } catch (IOException e) { LOG.error(e.getMessage(), e); }