This is an automated email from the ASF dual-hosted git repository. sunlan pushed a commit to branch GROOVY_4_0_X in repository https://gitbox.apache.org/repos/asf/groovy.git
commit c9e9330628a8e539f5328413e5e6bf859270130c Author: Daniel Sun <sun...@apache.org> AuthorDate: Sun Jun 16 07:09:18 2024 +0900 Minor refactor (cherry picked from commit 72f3295ca94c768bf54f1bc6ad83ab4a0f5a1b80) --- .../org/codehaus/groovy/vmplugin/v9/Java9.java | 27 ++++++++++------------ 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java b/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java index 5a744c3e27..218fe87ef8 100644 --- a/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java +++ b/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java @@ -378,25 +378,22 @@ public class Java9 extends Java8 { static { ModuleFinder finder = ModuleFinder.ofSystem(); - Map<String, ModuleDescriptor> map = new HashMap<>(); + Map<String, ModuleDescriptor> packages = new HashMap<>(1024); finder.findAll().stream() .map(ModuleReference::descriptor) - .forEach(md -> md.packages().forEach(pn -> map.putIfAbsent(pn, md))); + .forEach(md -> md.packages().forEach(pn -> packages.putIfAbsent(pn, md))); - Map<String, Set<String>> concealedPackagesToOpen = new ConcurrentHashMap<>(); - Map<String, Set<String>> exportedPackagesToOpen = new ConcurrentHashMap<>(); + Map<String, Set<String>> concealedPackagesToOpen = new ConcurrentHashMap<>(64); + Map<String, Set<String>> exportedPackagesToOpen = new ConcurrentHashMap<>(64); - Arrays.stream(JAVA8_PACKAGES()) - .forEach(pn -> { - ModuleDescriptor descriptor = map.get(pn); - if (descriptor != null && !isOpen(descriptor, pn)) { - if (isExported(descriptor, pn)) { - exportedPackagesToOpen.computeIfAbsent(descriptor.name(), k -> new HashSet<>()).add(pn); - } else { - concealedPackagesToOpen.computeIfAbsent(descriptor.name(), k -> new HashSet<>()).add(pn); - } - } - }); + for (String j8pn : JAVA8_PACKAGES()) { + ModuleDescriptor descriptor = packages.get(j8pn); + if (descriptor == null || isOpen(descriptor, j8pn)) continue; + + Map<String, Set<String>> packagesToOpen = + isExported(descriptor, j8pn) ? exportedPackagesToOpen : concealedPackagesToOpen; + packagesToOpen.computeIfAbsent(descriptor.name(), k -> new HashSet<>(128)).add(j8pn); + } CONCEALED_PACKAGES_TO_OPEN = concealedPackagesToOpen; EXPORTED_PACKAGES_TO_OPEN = exportedPackagesToOpen;