Skip to content

Commit 78a3641

Browse files
committed
fix: compiler warning "Potential resource leak"
1 parent fd20d73 commit 78a3641

4 files changed

Lines changed: 39 additions & 32 deletions

File tree

org.eclipse.tm4e.core/src/test/java/org/eclipse/tm4e/core/internal/theme/raw/RawThemeReaderTest.java

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,27 +31,29 @@ class RawThemeReaderTest {
3131
@NonNullByDefault({})
3232
void testLoadingThemes() throws IOException {
3333
final var count = new AtomicInteger();
34-
Files.list(Paths.get("../org.eclipse.tm4e.core.tests/src/main/resources/test-cases/themes")).forEach(file -> {
35-
final var fileName = file.getFileName().toString();
36-
if (fileName.endsWith(".json") && (fileName.contains("light") || fileName.contains("dark") || fileName.contains("black"))
37-
|| fileName.endsWith(".tmTheme")) {
38-
System.out.println("Parsing [" + file + "]...");
39-
try {
40-
final IRawTheme rawTheme = RawThemeReader.readTheme(IThemeSource.fromFile(file));
41-
count.incrementAndGet();
42-
assertFalse(castNonNull(rawTheme.getName()).isEmpty());
43-
assertFalse(castNonNull(rawTheme.getSettings()).isEmpty());
44-
for (final var setting : castNonNull(rawTheme.getSettings())) {
45-
assertNotNull(setting.getSetting());
34+
try (final var files = Files.list(Paths.get("../org.eclipse.tm4e.core.tests/src/main/resources/test-cases/themes"))) {
35+
files.forEach(file -> {
36+
final var fileName = file.getFileName().toString();
37+
if (fileName.endsWith(".json") && (fileName.contains("light") || fileName.contains("dark") || fileName.contains("black"))
38+
|| fileName.endsWith(".tmTheme")) {
39+
System.out.println("Parsing [" + file + "]...");
40+
try {
41+
final IRawTheme rawTheme = RawThemeReader.readTheme(IThemeSource.fromFile(file));
42+
count.incrementAndGet();
43+
assertFalse(castNonNull(rawTheme.getName()).isEmpty());
44+
assertFalse(castNonNull(rawTheme.getSettings()).isEmpty());
45+
for (final var setting : castNonNull(rawTheme.getSettings())) {
46+
assertNotNull(setting.getSetting());
47+
}
48+
final var theme = Theme.createFromRawTheme(rawTheme, null);
49+
assertFalse(theme.getColorMap().isEmpty());
50+
assertNotNull(theme.getDefaults());
51+
} catch (final Exception ex) {
52+
throw new RuntimeException(ex);
4653
}
47-
final var theme = Theme.createFromRawTheme(rawTheme, null);
48-
assertFalse(theme.getColorMap().isEmpty());
49-
assertNotNull(theme.getDefaults());
50-
} catch (final Exception ex) {
51-
throw new RuntimeException(ex);
5254
}
53-
}
54-
});
55+
});
56+
}
5557
System.out.println("Successfully parsed " + count.intValue() + " themes.");
5658
assertTrue(count.intValue() > 10, "Only " + count.intValue() + " themes found, expected more than 10!");
5759
}

org.eclipse.tm4e.language_pack/updater/src/main/java/updater/VSCodeMultiExtensionsSourceHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ void handle() throws IOException {
5151
logInfo("Locating valid VSCode grammar extensions...");
5252
final Map<String, VsCodeExtensionPackageJson> pkgJsonByExtId = new HashMap<>();
5353
final Map<String, Path> pkgJsonPathByExtId = new HashMap<>();
54-
try (var l = withLogIndented()) {
55-
for (final var dir : Files.list(sourceExtensionDir).filter(Files::isDirectory).toList()) {
54+
try (var l = withLogIndented(); var files = Files.list(sourceExtensionDir)) {
55+
for (final var dir : files.filter(Files::isDirectory).toList()) {
5656
final var pkgJSONPath = dir.resolve("package.json");
5757
if (!Files.exists(pkgJSONPath)) {
5858
logInfo("Ignoring extension directory [" + dir.getFileName() + "] - no package.json found");

org.eclipse.tm4e.language_pack/updater/src/main/java/updater/utils/Git.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.util.ArrayList;
2222
import java.util.Comparator;
2323
import java.util.regex.Pattern;
24+
import java.util.stream.Stream;
2425

2526
import com.fasterxml.jackson.annotation.JsonProperty;
2627

@@ -114,10 +115,11 @@ public static GitCheckoutState gitSparseCheckout(final Path localPath, final Git
114115
}
115116

116117
// delete local git repo if not in desired state
117-
Files.walk(localPath) //
118-
.sorted(Comparator.reverseOrder()) //
119-
.map(Path::toFile) //
120-
.forEach(File::delete);
118+
try (Stream<Path> files = Files.walk(localPath)) {
119+
files.sorted(Comparator.reverseOrder()) //
120+
.map(Path::toFile) //
121+
.forEach(File::delete);
122+
}
121123
}
122124

123125
Files.createDirectories(localPath);

org.eclipse.tm4e.language_pack/updater/src/main/java/updater/utils/Sys.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,11 @@ public static void execVerbose(final Path workDir, final String cmd, final Strin
149149
}
150150

151151
public static Optional<Path> findFirstFile(final Path path, final Predicate<String> nameFilter) throws IOException {
152-
return Files.list(path) //
153-
.filter(Files::isRegularFile) //
154-
.filter(file -> nameFilter.test(file.getFileName().toString())).findFirst();
152+
try (Stream<Path> files = Files.walk(path)) {
153+
return files //
154+
.filter(Files::isRegularFile) //
155+
.filter(file -> nameFilter.test(file.getFileName().toString())).findFirst();
156+
}
155157
}
156158

157159
public static String getFileExtension(final Path path) {
@@ -165,10 +167,11 @@ public static String getFileExtension(final String path) {
165167

166168
public static void rmDir(final Path dir) throws IOException {
167169
if (Files.exists(dir)) {
168-
Files.walk(dir) //
169-
.sorted(Comparator.reverseOrder()) //
170-
.map(Path::toFile) //
171-
.forEach(File::delete);
170+
try (Stream<Path> files = Files.walk(dir)) {
171+
files.sorted(Comparator.reverseOrder()) //
172+
.map(Path::toFile) //
173+
.forEach(File::delete);
174+
}
172175
}
173176
}
174177

0 commit comments

Comments
 (0)