mirror of
https://github.com/apache/maven-mvnd.git
synced 2025-10-15 23:00:50 +00:00
Fix stream leak (#555)
This commit is contained in:
@@ -20,6 +20,7 @@ import java.io.IOException;
|
|||||||
import java.net.SocketAddress;
|
import java.net.SocketAddress;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.nio.channels.SocketChannel;
|
import java.nio.channels.SocketChannel;
|
||||||
|
import java.nio.file.DirectoryStream;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -307,7 +308,7 @@ public class DaemonConnector {
|
|||||||
final Path mvndHome = parameters.mvndHome();
|
final Path mvndHome = parameters.mvndHome();
|
||||||
final Path workingDir = parameters.userDir();
|
final Path workingDir = parameters.userDir();
|
||||||
String command = "";
|
String command = "";
|
||||||
try {
|
try (DirectoryStream<Path> jarPaths = Files.newDirectoryStream(mvndHome.resolve("mvn/lib/ext"))) {
|
||||||
List<String> args = new ArrayList<>();
|
List<String> args = new ArrayList<>();
|
||||||
// executable
|
// executable
|
||||||
final String java = Os.current().isUnixLike() ? "bin/java" : "bin\\java.exe";
|
final String java = Os.current().isUnixLike() ? "bin/java" : "bin\\java.exe";
|
||||||
@@ -315,7 +316,7 @@ public class DaemonConnector {
|
|||||||
// classpath
|
// classpath
|
||||||
String mvndCommonPath = null;
|
String mvndCommonPath = null;
|
||||||
String mvndAgentPath = null;
|
String mvndAgentPath = null;
|
||||||
for (Path jar : Files.newDirectoryStream(mvndHome.resolve("mvn/lib/ext"))) {
|
for (Path jar : jarPaths) {
|
||||||
String s = jar.getFileName().toString();
|
String s = jar.getFileName().toString();
|
||||||
if (s.endsWith(".jar")) {
|
if (s.endsWith(".jar")) {
|
||||||
if (s.startsWith("mvnd-common-")) {
|
if (s.startsWith("mvnd-common-")) {
|
||||||
@@ -349,11 +350,12 @@ public class DaemonConnector {
|
|||||||
}
|
}
|
||||||
// .mvn/jvm.config
|
// .mvn/jvm.config
|
||||||
if (Files.isRegularFile(parameters.jvmConfigPath())) {
|
if (Files.isRegularFile(parameters.jvmConfigPath())) {
|
||||||
Files.lines(parameters.jvmConfigPath())
|
try (Stream<String> lines = Files.lines(parameters.jvmConfigPath())) {
|
||||||
.flatMap(l -> Stream.of(l.split(" ")))
|
lines.flatMap(l -> Stream.of(l.split(" ")))
|
||||||
.map(String::trim)
|
.map(String::trim)
|
||||||
.filter(StringUtils::isNotEmpty)
|
.filter(StringUtils::isNotEmpty)
|
||||||
.forEach(args::add);
|
.forEach(args::add);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// memory
|
// memory
|
||||||
String minHeapSize = parameters.minHeapSize();
|
String minHeapSize = parameters.minHeapSize();
|
||||||
|
@@ -33,6 +33,7 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
import java.util.stream.Stream;
|
||||||
import org.fusesource.jansi.Ansi;
|
import org.fusesource.jansi.Ansi;
|
||||||
import org.fusesource.jansi.internal.CLibrary;
|
import org.fusesource.jansi.internal.CLibrary;
|
||||||
import org.jline.utils.AttributedString;
|
import org.jline.utils.AttributedString;
|
||||||
@@ -332,9 +333,8 @@ public class DefaultClient implements Client {
|
|||||||
List<Path> deleted = new ArrayList<>();
|
List<Path> deleted = new ArrayList<>();
|
||||||
List<Throwable> exceptions = new ArrayList<>();
|
List<Throwable> exceptions = new ArrayList<>();
|
||||||
FileTime limit = FileTime.from(Instant.now().minus(purgeLogPeriod));
|
FileTime limit = FileTime.from(Instant.now().minus(purgeLogPeriod));
|
||||||
try {
|
try (Stream<Path> storagePath = Files.list(storage)) {
|
||||||
Files.list(storage)
|
storagePath.filter(p -> p.getFileName().toString().endsWith(LOG_EXTENSION))
|
||||||
.filter(p -> p.getFileName().toString().endsWith(LOG_EXTENSION))
|
|
||||||
.filter(p -> !log.equals(p))
|
.filter(p -> !log.equals(p))
|
||||||
.filter(p -> {
|
.filter(p -> {
|
||||||
try {
|
try {
|
||||||
|
Reference in New Issue
Block a user