This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-mvnd.git


The following commit(s) were added to refs/heads/master by this push:
     new 827c09c  Fix stream leak (#555)
827c09c is described below

commit 827c09c51a1da8eba9d5fba9d284937b5ecefa04
Author: lujiefsi <[email protected]>
AuthorDate: Mon Jan 3 01:32:09 2022 -0600

    Fix stream leak (#555)
---
 .../java/org/mvndaemon/mvnd/client/DaemonConnector.java  | 16 +++++++++-------
 .../java/org/mvndaemon/mvnd/client/DefaultClient.java    |  6 +++---
 2 files changed, 12 insertions(+), 10 deletions(-)

diff --git 
a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java 
b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java
index fd0cf49..38986dd 100644
--- a/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java
+++ b/client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java
@@ -20,6 +20,7 @@ import java.io.IOException;
 import java.net.SocketAddress;
 import java.nio.ByteBuffer;
 import java.nio.channels.SocketChannel;
+import java.nio.file.DirectoryStream;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.ArrayList;
@@ -307,7 +308,7 @@ public class DaemonConnector {
         final Path mvndHome = parameters.mvndHome();
         final Path workingDir = parameters.userDir();
         String command = "";
-        try {
+        try (DirectoryStream<Path> jarPaths = 
Files.newDirectoryStream(mvndHome.resolve("mvn/lib/ext"))) {
             List<String> args = new ArrayList<>();
             // executable
             final String java = Os.current().isUnixLike() ? "bin/java" : 
"bin\\java.exe";
@@ -315,7 +316,7 @@ public class DaemonConnector {
             // classpath
             String mvndCommonPath = null;
             String mvndAgentPath = null;
-            for (Path jar : 
Files.newDirectoryStream(mvndHome.resolve("mvn/lib/ext"))) {
+            for (Path jar : jarPaths) {
                 String s = jar.getFileName().toString();
                 if (s.endsWith(".jar")) {
                     if (s.startsWith("mvnd-common-")) {
@@ -349,11 +350,12 @@ public class DaemonConnector {
             }
             // .mvn/jvm.config
             if (Files.isRegularFile(parameters.jvmConfigPath())) {
-                Files.lines(parameters.jvmConfigPath())
-                        .flatMap(l -> Stream.of(l.split(" ")))
-                        .map(String::trim)
-                        .filter(StringUtils::isNotEmpty)
-                        .forEach(args::add);
+                try (Stream<String> lines = 
Files.lines(parameters.jvmConfigPath())) {
+                    lines.flatMap(l -> Stream.of(l.split(" ")))
+                            .map(String::trim)
+                            .filter(StringUtils::isNotEmpty)
+                            .forEach(args::add);
+                }
             }
             // memory
             String minHeapSize = parameters.minHeapSize();
diff --git a/client/src/main/java/org/mvndaemon/mvnd/client/DefaultClient.java 
b/client/src/main/java/org/mvndaemon/mvnd/client/DefaultClient.java
index 4b24437..9f33215 100644
--- a/client/src/main/java/org/mvndaemon/mvnd/client/DefaultClient.java
+++ b/client/src/main/java/org/mvndaemon/mvnd/client/DefaultClient.java
@@ -33,6 +33,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
 import java.util.concurrent.atomic.AtomicReference;
+import java.util.stream.Stream;
 import org.fusesource.jansi.Ansi;
 import org.fusesource.jansi.internal.CLibrary;
 import org.jline.utils.AttributedString;
@@ -332,9 +333,8 @@ public class DefaultClient implements Client {
         List<Path> deleted = new ArrayList<>();
         List<Throwable> exceptions = new ArrayList<>();
         FileTime limit = FileTime.from(Instant.now().minus(purgeLogPeriod));
-        try {
-            Files.list(storage)
-                    .filter(p -> 
p.getFileName().toString().endsWith(LOG_EXTENSION))
+        try (Stream<Path> storagePath = Files.list(storage)) {
+            storagePath.filter(p -> 
p.getFileName().toString().endsWith(LOG_EXTENSION))
                     .filter(p -> !log.equals(p))
                     .filter(p -> {
                         try {

Reply via email to