Skip to content

Commit

Permalink
Close Files streams using try-with-resources
Browse files Browse the repository at this point in the history
  • Loading branch information
mattirn committed Mar 31, 2023
1 parent ccfb8c5 commit c7702f0
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 22 deletions.
6 changes: 4 additions & 2 deletions builtins/src/main/java/org/jline/builtins/Commands.java
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,10 @@ protected static List<Path> findFiles(Path root, String files) throws IOExceptio
searchRoot = root;
}
PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher("glob:" + regex);
return Files.find(searchRoot, Integer.MAX_VALUE, (path, f) -> pathMatcher.matches(path))
.collect(Collectors.toList());
try (Stream<Path> pathStream =
Files.find(searchRoot, Integer.MAX_VALUE, (path, f) -> pathMatcher.matches(path))) {
return pathStream.collect(Collectors.toList());
}
}

public static void history(LineReader reader, PrintStream out, PrintStream err, Path currentDir, String[] argv)
Expand Down
7 changes: 4 additions & 3 deletions builtins/src/main/java/org/jline/builtins/Less.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import java.util.*;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
import java.util.stream.Stream;

import org.jline.builtins.Nano.PatternHistory;
import org.jline.builtins.Source.ResourceSource;
Expand Down Expand Up @@ -155,9 +156,9 @@ public Less(Terminal terminal, Path currentDir, Options opts, ConfigurationPath
}
} else if (new File("/usr/share/nano").exists() && !ignorercfiles) {
PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher("glob:/usr/share/nano/*.nanorc");
try {
Files.find(Paths.get("/usr/share/nano"), Integer.MAX_VALUE, (path, f) -> pathMatcher.matches(path))
.forEach(syntaxFiles::add);
try (Stream<Path> pathStream = Files.find(
Paths.get("/usr/share/nano"), Integer.MAX_VALUE, (path, f) -> pathMatcher.matches(path))) {
pathStream.forEach(syntaxFiles::add);
nanorcIgnoreErrors = true;
} catch (IOException e) {
errorMessage = "Encountered error while reading nanorc files";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import org.jline.builtins.Completers.FilesCompleter;
import org.jline.builtins.Completers.OptDesc;
Expand Down Expand Up @@ -237,11 +238,12 @@ public Map<String, Boolean> scripts() {
for (String e : scriptExtensions()) {
String regex = pp + "/*." + e;
PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher("glob:" + regex);
Files.find(
Paths.get(new File(regex).getParent()),
Integer.MAX_VALUE,
(path, f) -> pathMatcher.matches(path))
.forEach(scripts::add);
try (Stream<Path> pathStream = Files.find(
Paths.get(new File(regex).getParent()),
Integer.MAX_VALUE,
(path, f) -> pathMatcher.matches(path))) {
pathStream.forEach(scripts::add);
}
}
}
}
Expand Down
6 changes: 4 additions & 2 deletions demo/src/main/java/org/apache/felix/gogo/jline/Posix.java
Original file line number Diff line number Diff line change
Expand Up @@ -1025,8 +1025,10 @@ protected void less(CommandSession session, Process process, String[] argv) thro
sources.add(new StdInSource(process));
} else if (arg.contains("*") || arg.contains("?")) {
PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher("glob:" + arg);
Files.find(session.currentDir(), Integer.MAX_VALUE, (path, f) -> pathMatcher.matches(path))
.forEach(p -> sources.add(doUrlSource(session.currentDir(), p)));
try (Stream<Path> pathStream =
Files.find(session.currentDir(), Integer.MAX_VALUE, (path, f) -> pathMatcher.matches(path))) {
pathStream.forEach(p -> sources.add(doUrlSource(session.currentDir(), p)));
}
} else {
sources.add(new PathSource(session.currentDir().resolve(arg), arg));
}
Expand Down
9 changes: 5 additions & 4 deletions groovy/src/main/java/org/jline/script/GroovyCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import java.io.File;
import java.nio.file.*;
import java.util.*;
import java.util.stream.Stream;

import org.jline.builtins.Completers;
import org.jline.builtins.Completers.OptDesc;
Expand Down Expand Up @@ -288,10 +289,10 @@ private Object classLoader(CommandInput input) {
.getPathMatcher("regex:"
+ arg.replace("\\", "\\\\").replace(".", "\\.")
+ separator.replace("\\", "\\\\") + ".*\\.jar");
Files.walk(Paths.get(arg))
.filter(matcher::matches)
.map(Path::toString)
.forEach(engine.classLoader::addClasspath);
try (Stream<Path> pathStream =
Files.walk(Paths.get(arg)).filter(matcher::matches)) {
pathStream.map(Path::toString).forEach(engine.classLoader::addClasspath);
}
} else {
engine.classLoader.addClasspath(arg);
}
Expand Down
7 changes: 3 additions & 4 deletions groovy/src/main/java/org/jline/script/GroovyEngine.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import org.apache.groovy.ast.tools.ImmutablePropertyUtils;
import org.codehaus.groovy.control.messages.SyntaxErrorMessage;
Expand Down Expand Up @@ -822,10 +823,8 @@ private static Set<String> sourcesForPackage(String domain) {
PathMatcher matcher =
FileSystems.getDefault().getPathMatcher("regex:\\." + dom + "[A-Z]+[a-zA-Z]*\\.groovy");
Set<String> out = new HashSet<>();
try {
List<Path> paths =
Files.walk(Paths.get(".")).filter(matcher::matches).collect(Collectors.toList());
for (Path p : paths) {
try (Stream<Path> pathStream = Files.walk(Paths.get(".")).filter(matcher::matches)) {
for (Path p : pathStream.collect(Collectors.toList())) {
if (!p.getFileName().toString().matches("[A-Z]+[a-zA-Z]*\\.groovy")) {
continue;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
package org.jline.reader.impl.completer;

import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
Expand Down Expand Up @@ -71,8 +72,8 @@ public void complete(LineReader reader, ParsedLine commandLine, final List<Candi
curBuf = "";
current = getUserDir();
}
try {
Files.newDirectoryStream(current, this::accept).forEach(p -> {
try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(current, this::accept)) {
directoryStream.forEach(p -> {
String value = curBuf + p.getFileName().toString();
if (Files.isDirectory(p)) {
candidates.add(new Candidate(
Expand Down

0 comments on commit c7702f0

Please sign in to comment.