From ef1afd37098328f6898556211b7761e92dc37552 Mon Sep 17 00:00:00 2001 From: lloydmeta Date: Thu, 31 Jul 2025 10:26:15 +0900 Subject: [PATCH] [Licence Header] Use try-with-resources for Files.lines() to prevent file handle leaks Convert Files.lines() usage to try-with-resources pattern to ensure streams are properly closed and prevent file handle exhaustion. See https://technology.lmax.com/posts/adventures-with-files-lines/ Rel https://elasticco.atlassian.net/browse/ENGPRD-1578 Signed-off-by: lloydmeta --- .../co/elastic/gradle/license_headers/LicenseCheckUtils.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/license-headers/src/main/java/co/elastic/gradle/license_headers/LicenseCheckUtils.java b/plugins/license-headers/src/main/java/co/elastic/gradle/license_headers/LicenseCheckUtils.java index 162494b0..562fa3f5 100644 --- a/plugins/license-headers/src/main/java/co/elastic/gradle/license_headers/LicenseCheckUtils.java +++ b/plugins/license-headers/src/main/java/co/elastic/gradle/license_headers/LicenseCheckUtils.java @@ -28,6 +28,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Stream; public class LicenseCheckUtils { @@ -36,8 +37,8 @@ public static Map nonCompliantFilesWithReason(Path projec for (File file : files) { final String[] fileHeader; - try { - fileHeader = Files.lines(file.toPath()).limit(expectedHeader.length).toArray(String[]::new); + try (Stream lines = Files.lines(file.toPath())) { + fileHeader = lines.limit(expectedHeader.length).toArray(String[]::new); } catch (IOException| UncheckedIOException e) { throw new GradleException("Failed to read " + projectDir.relativize(file.toPath()), e); }