Skip to content

Commit 80bd8c3

Browse files
rjernstChrisHegarty
authored andcommitted
8290504: Close streams returned by ModuleReader::list
Reviewed-by: mchung, chegar
1 parent 15f4b30 commit 80bd8c3

File tree

4 files changed

+20
-9
lines changed

4 files changed

+20
-9
lines changed

test/jdk/java/lang/ClassLoader/getResource/automaticmodules/Main.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.lang.module.ResolvedModule;
2929
import java.net.URL;
3030
import java.util.Enumeration;
31+
import java.util.stream.Stream;
3132

3233
/**
3334
* Usage: Main $MODULE
@@ -79,8 +80,9 @@ public static void main(String[] args) throws Exception {
7980
.map(ResolvedModule::reference)
8081
.orElseThrow(() -> new RuntimeException(mn + " not resolved!!"));
8182

82-
try (ModuleReader reader = mref.open()) {
83-
reader.list().forEach(name -> {
83+
try (ModuleReader reader = mref.open();
84+
Stream<String> stream = reader.list()) {
85+
stream.forEach(name -> {
8486
testFindUnchecked(name);
8587

8688
// if the resource is a directory then find without trailing slash

test/jdk/java/lang/invoke/callerSensitive/CallerSensitiveAccess.java

+7-4
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,10 @@ public class CallerSensitiveAccess {
6262
*/
6363
@DataProvider(name = "callerSensitiveMethods")
6464
static Object[][] callerSensitiveMethods() {
65-
return callerSensitiveMethods(Object.class.getModule())
66-
.map(m -> new Object[] { m, shortDescription(m) })
67-
.toArray(Object[][]::new);
65+
try (Stream<Method> stream = callerSensitiveMethods(Object.class.getModule())) {
66+
return stream.map(m -> new Object[]{m, shortDescription(m)})
67+
.toArray(Object[][]::new);
68+
}
6869
}
6970

7071
/**
@@ -100,11 +101,13 @@ public void testPublicLookupUnreflect(@NoInjection Method method, String desc) t
100101
*/
101102
@DataProvider(name = "accessibleCallerSensitiveMethods")
102103
static Object[][] accessibleCallerSensitiveMethods() {
103-
return callerSensitiveMethods(Object.class.getModule())
104+
try (Stream<Method> stream = callerSensitiveMethods(Object.class.getModule())) {
105+
return stream
104106
.filter(m -> Modifier.isPublic(m.getModifiers()))
105107
.map(m -> { m.setAccessible(true); return m; })
106108
.map(m -> new Object[] { m, shortDescription(m) })
107109
.toArray(Object[][]::new);
110+
}
108111
}
109112

110113
/**

test/jdk/java/lang/module/ModuleReader/ModuleReaderTest.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
import java.util.Set;
5555
import java.util.stream.Collectors;
5656
import java.util.spi.ToolProvider;
57+
import java.util.stream.Stream;
5758

5859
import jdk.internal.module.ModulePath;
5960
import jdk.test.lib.compiler.CompilerUtils;
@@ -413,7 +414,10 @@ void testRead(ModuleReader reader, String name, byte[] expectedBytes)
413414
* Test ModuleReader#list
414415
*/
415416
void testList(ModuleReader reader, String name) throws IOException {
416-
List<String> list = reader.list().collect(Collectors.toList());
417+
final List<String> list;
418+
try (Stream<String> stream = reader.list()) {
419+
list = stream.toList();
420+
}
417421
Set<String> names = new HashSet<>(list);
418422
assertTrue(names.size() == list.size()); // no duplicates
419423

test/jdk/java/lang/module/customfs/ModulesInCustomFileSystem.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import java.nio.file.Path;
4545
import java.nio.file.Paths;
4646
import java.util.Set;
47+
import java.util.stream.Stream;
4748

4849
import jdk.test.lib.util.JarUtils;
4950

@@ -108,8 +109,9 @@ private void testZipFileSystem(Path zip) throws Exception {
108109
private void listAllModules(ModuleFinder finder) throws Exception {
109110
for (ModuleReference mref : finder.findAll()) {
110111
System.out.println(mref.descriptor());
111-
try (ModuleReader reader = mref.open()) {
112-
reader.list().forEach(name -> System.out.format(" %s%n", name));
112+
try (ModuleReader reader = mref.open();
113+
Stream<String> stream = reader.list()) {
114+
stream.forEach(name -> System.out.format(" %s%n", name));
113115
}
114116
}
115117
}

0 commit comments

Comments
 (0)