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 {