Fix stream leak (#555)

This commit is contained in:
lujiefsi
2022-01-03 01:32:09 -06:00
committed by GitHub
parent 09cb99fd48
commit 827c09c51a
2 changed files with 12 additions and 10 deletions

View File

@@ -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();

View File

@@ -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 {