7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23 package org.openjdk.bench.jdk.internal.jrtfs;
24
25 import jdk.internal.jimage.ImageReader;
26 import jdk.internal.jimage.ImageReader.Node;
27 import org.openjdk.jmh.annotations.Benchmark;
28 import org.openjdk.jmh.annotations.BenchmarkMode;
29 import org.openjdk.jmh.annotations.Fork;
30 import org.openjdk.jmh.annotations.Level;
31 import org.openjdk.jmh.annotations.Measurement;
32 import org.openjdk.jmh.annotations.Mode;
33 import org.openjdk.jmh.annotations.OutputTimeUnit;
34 import org.openjdk.jmh.annotations.Scope;
35 import org.openjdk.jmh.annotations.Setup;
36 import org.openjdk.jmh.annotations.State;
37 import org.openjdk.jmh.annotations.TearDown;
38 import org.openjdk.jmh.annotations.Warmup;
39 import org.openjdk.jmh.infra.Blackhole;
40
41 import java.io.IOException;
42 import java.nio.ByteOrder;
43 import java.nio.file.Files;
44 import java.nio.file.Path;
45 import java.util.ArrayList;
46 import java.util.List;
47 import java.util.Set;
48 import java.util.concurrent.TimeUnit;
49
50 import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
51
52 /// Benchmarks for ImageReader. See individual benchmarks for details on what they
53 /// measure, and their potential applicability for real world conclusions.
54 @BenchmarkMode(Mode.AverageTime)
55 @Warmup(iterations = 5, timeUnit = TimeUnit.MILLISECONDS)
56 @Measurement(iterations = 5, timeUnit = TimeUnit.MILLISECONDS)
57 @State(Scope.Benchmark)
58 @OutputTimeUnit(TimeUnit.MILLISECONDS)
59 @Fork(value = 1, jvmArgs = {"--add-exports", "java.base/jdk.internal.jimage=ALL-UNNAMED"})
60 public class ImageReaderBenchmark {
61
62 private static final Path SYSTEM_IMAGE_FILE = Path.of(System.getProperty("java.home"), "lib", "modules");
63 static {
64 if (!Files.exists(SYSTEM_IMAGE_FILE)) {
65 throw new IllegalStateException("Cannot locate jimage file for benchmark: " + SYSTEM_IMAGE_FILE);
66 }
67 }
68
69 /// NOT annotated with `@State` since it needs to potentially be used as a
70 /// per-benchmark or a per-iteration state object. The subclasses provide
71 /// any lifetime annotations that are needed.
72 static class BaseState {
73 protected Path copiedImageFile;
74 protected ByteOrder byteOrder;
75 long count = 0;
76
77 public void setUp() throws IOException {
78 copiedImageFile = Files.createTempFile("copied_jimage", "");
79 byteOrder = ByteOrder.nativeOrder();
80 Files.copy(SYSTEM_IMAGE_FILE, copiedImageFile, REPLACE_EXISTING);
81 }
82
83 public void tearDown() throws IOException {
84 Files.deleteIfExists(copiedImageFile);
85 System.err.println("Result: " + count);
86 }
87 }
88
89 @State(Scope.Benchmark)
90 public static class WarmStartWithImageReader extends BaseState {
91 ImageReader reader;
92
93 @Setup(Level.Trial)
94 public void setUp() throws IOException {
95 super.setUp();
96 reader = ImageReader.open(copiedImageFile, byteOrder);
97 }
98
99 @TearDown(Level.Trial)
100 public void tearDown() throws IOException {
101 super.tearDown();
102 }
103 }
104
105 @State(Scope.Benchmark)
106 public static class ColdStart extends BaseState {
107 @Setup(Level.Iteration)
108 public void setUp() throws IOException {
109 super.setUp();
110 }
111
112 @TearDown(Level.Iteration)
113 public void tearDown() throws IOException {
114 super.tearDown();
115 }
116 }
117
118 @State(Scope.Benchmark)
119 public static class ColdStartWithImageReader extends BaseState {
120 ImageReader reader;
121
122 @Setup(Level.Iteration)
123 public void setup() throws IOException {
124 super.setUp();
125 reader = ImageReader.open(copiedImageFile, byteOrder);
126 }
127
128 @TearDown(Level.Iteration)
129 public void tearDown() throws IOException {
130 reader.close();
131 super.tearDown();
132 }
133 }
134
135 /// Benchmarks counting of all nodes in the system image *after* they have all
136 /// been visited at least once. Image nodes should be cached after first use,
137 /// so this benchmark should be fast and very stable.
138 @Benchmark
139 @BenchmarkMode(Mode.AverageTime)
140 public void warmCache_CountAllNodes(WarmStartWithImageReader state) throws IOException {
141 state.count = countAllNodes(state.reader, state.reader.findNode("/"));
142 }
143
144 /// Benchmarks counting of all nodes in the system image from a "cold start". This
145 /// visits all nodes in depth-first order and counts them.
146 ///
147 /// This benchmark is not representative of any typical usage pattern, but can be
148 /// used for comparisons between versions of `ImageReader`.
149 @Benchmark
150 @BenchmarkMode(Mode.SingleShotTime)
151 public void coldStart_InitAndCount(ColdStart state) throws IOException {
152 try (var reader = ImageReader.open(state.copiedImageFile, state.byteOrder)) {
153 state.count = countAllNodes(reader, reader.findNode("/"));
154 }
155 }
156
157 /// As above, but includes the time to initialize the `ImageReader`.
158 @Benchmark
159 @BenchmarkMode(Mode.SingleShotTime)
160 public void coldStart_CountOnly(ColdStartWithImageReader state) throws IOException {
161 state.count = countAllNodes(state.reader, state.reader.findNode("/"));
162 }
163
164 /// Benchmarks the time taken to load the byte array contents of classes
165 /// representative of those loaded by javac to for the simplest `HelloWorld`
166 /// program.
167 ///
168 /// This benchmark is somewhat representative of the cost of class loading
169 /// during javac startup. It is useful for comparisons between versions of
170 /// `ImageReader`, but also to estimate a lower bound for any reduction or
171 /// increase in the real-world startup time of javac.
172 @Benchmark
173 @BenchmarkMode(Mode.SingleShotTime)
174 public void coldStart_LoadJavacInitClasses(Blackhole bh, ColdStart state) throws IOException {
175 int errors = 0;
176 try (var reader = ImageReader.open(state.copiedImageFile, state.byteOrder)) {
177 for (String path : INIT_CLASSES) {
178 // Path determination isn't perfect so there can be a few "misses" in here.
179 // Report the count of bad paths as the "result", which should be < 20 or so.
180 Node node = reader.findNode(path);
181 if (node != null) {
182 bh.consume(reader.getResource(node));
183 } else {
184 errors += 1;
185 }
186 }
187 }
188 state.count = INIT_CLASSES.size();
189 // Allow up to 2% missing classes before complaining.
190 if ((100 * errors) / INIT_CLASSES.size() >= 2) {
191 reportMissingClassesAndFail(state, errors);
192 }
193 }
194
195 static long countAllNodes(ImageReader reader, Node node) {
196 long count = 1;
197 if (node.isDirectory()) {
198 count += node.getChildNames().mapToLong(n -> {
199 try {
200 return countAllNodes(reader, reader.findNode(n));
201 } catch (IOException e) {
202 throw new RuntimeException(e);
203 }
204 }).sum();
205 }
206 return count;
207 }
208
209 // Run if the INIT_CLASSES list below is sufficiently out-of-date.
210 // DO NOT run this before the benchmark, as it will cache all the nodes!
211 private static void reportMissingClassesAndFail(ColdStart state, int errors) throws IOException {
212 List<String> missing = new ArrayList<>(errors);
213 try (var reader = ImageReader.open(state.copiedImageFile, state.byteOrder)) {
214 for (String path : INIT_CLASSES) {
215 if (reader.findNode(path) == null) {
216 missing.add(path);
217 }
218 }
219 }
220 throw new IllegalStateException(
221 String.format(
222 "Too many missing classes (%d of %d) in the hardcoded benchmark list.\n" +
223 "Please regenerate it according to instructions in the source code.\n" +
224 "Missing classes:\n\t%s",
225 errors, INIT_CLASSES.size(), String.join("\n\t", missing)));
226 }
227
228 // Note: This list is inherently a little fragile and may end up being more
229 // trouble than it's worth to maintain. If it turns out that it needs to be
230 // regenerated often when this benchmark is run, then a new approach should
231 // be considered, such as:
232 // * Limit the list of classes to non-internal ones.
233 // * Calculate the list dynamically based on the running JVM.
234 //
235 // Created by running "java -verbose:class", throwing away anonymous inner
236 // classes and anything without a reliable name, and grouping by the stated
237 // source. It's not perfect, but it's representative.
238 //
239 // <jdk_root>/bin/java -verbose:class HelloWorld 2>&1 \
240 // | fgrep '[class,load]' | cut -d' ' -f2 \
241 // | tr '.' '/' \
242 // | egrep -v '\$[0-9$]' \
243 // | fgrep -v 'HelloWorld' \
244 // | fgrep -v '/META-INF/preview/' \
245 // | while read f ; do echo "${f}.class" ; done \
246 // > initclasses.txt
247 //
248 // Output:
249 // java/lang/Object.class
250 // java/io/Serializable.class
251 // ...
252 //
253 // jimage list <jdk_root>/images/jdk/lib/modules \
254 // | awk '/^Module: */ { MOD=$2 }; /^ */ { print "/modules/"MOD"/"$1 }' \
255 // > fullpaths.txt
256 //
257 // Output:
258 // ...
259 // /modules/java.base/java/lang/Object.class
260 // /modules/java.base/java/lang/OutOfMemoryError.class
261 // ...
262 //
263 // while read c ; do grep "/$c" fullpaths.txt ; done < initclasses.txt \
264 // | while read c ; do printf ' "%s",\n' "$c" ; done \
265 // > initpaths.txt
266 //
267 // Output:
268 private static final Set<String> INIT_CLASSES = Set.of(
269 "/modules/java.base/java/lang/Object.class",
270 "/modules/java.base/java/io/Serializable.class",
271 "/modules/java.base/java/lang/Comparable.class",
272 "/modules/java.base/java/lang/CharSequence.class",
273 "/modules/java.base/java/lang/constant/Constable.class",
274 "/modules/java.base/java/lang/constant/ConstantDesc.class",
275 "/modules/java.base/java/lang/String.class",
276 "/modules/java.base/java/lang/reflect/AnnotatedElement.class",
277 "/modules/java.base/java/lang/reflect/GenericDeclaration.class",
278 "/modules/java.base/java/lang/reflect/Type.class",
279 "/modules/java.base/java/lang/invoke/TypeDescriptor.class",
280 "/modules/java.base/java/lang/invoke/TypeDescriptor$OfField.class",
281 "/modules/java.base/java/lang/Class.class",
282 "/modules/java.base/java/lang/Cloneable.class",
283 "/modules/java.base/java/lang/ClassLoader.class",
284 "/modules/java.base/java/lang/System.class",
285 "/modules/java.base/java/lang/Throwable.class",
286 "/modules/java.base/java/lang/Error.class",
287 "/modules/java.base/java/lang/Exception.class",
288 "/modules/java.base/java/lang/RuntimeException.class",
289 "/modules/java.base/java/security/ProtectionDomain.class",
290 "/modules/java.base/java/security/SecureClassLoader.class",
291 "/modules/java.base/java/lang/ReflectiveOperationException.class",
292 "/modules/java.base/java/lang/ClassNotFoundException.class",
293 "/modules/java.base/java/lang/Record.class",
294 "/modules/java.base/java/lang/LinkageError.class",
295 "/modules/java.base/java/lang/NoClassDefFoundError.class",
296 "/modules/java.base/java/lang/ClassCastException.class",
297 "/modules/java.base/java/lang/ArrayStoreException.class",
298 "/modules/java.base/java/lang/VirtualMachineError.class",
299 "/modules/java.base/java/lang/InternalError.class",
300 "/modules/java.base/java/lang/OutOfMemoryError.class",
301 "/modules/java.base/java/lang/StackOverflowError.class",
302 "/modules/java.base/java/lang/IllegalMonitorStateException.class",
303 "/modules/java.base/java/lang/ref/Reference.class",
304 "/modules/java.base/java/lang/IllegalCallerException.class",
305 "/modules/java.base/java/lang/ref/SoftReference.class",
306 "/modules/java.base/java/lang/ref/WeakReference.class",
307 "/modules/java.base/java/lang/ref/FinalReference.class",
308 "/modules/java.base/java/lang/ref/PhantomReference.class",
309 "/modules/java.base/java/lang/ref/Finalizer.class",
310 "/modules/java.base/java/lang/Runnable.class",
311 "/modules/java.base/java/lang/Thread.class",
312 "/modules/java.base/java/lang/Thread$FieldHolder.class",
313 "/modules/java.base/java/lang/Thread$Constants.class",
314 "/modules/java.base/java/lang/Thread$UncaughtExceptionHandler.class",
315 "/modules/java.base/java/lang/ThreadGroup.class",
316 "/modules/java.base/java/lang/BaseVirtualThread.class",
317 "/modules/java.base/java/lang/VirtualThread.class",
318 "/modules/java.base/java/lang/ThreadBuilders$BoundVirtualThread.class",
319 "/modules/java.base/java/util/Map.class",
320 "/modules/java.base/java/util/Dictionary.class",
321 "/modules/java.base/java/util/Hashtable.class",
322 "/modules/java.base/java/util/Properties.class",
323 "/modules/java.base/java/lang/Module.class",
324 "/modules/java.base/java/lang/reflect/AccessibleObject.class",
325 "/modules/java.base/java/lang/reflect/Member.class",
326 "/modules/java.base/java/lang/reflect/Field.class",
327 "/modules/java.base/java/lang/reflect/Parameter.class",
328 "/modules/java.base/java/lang/reflect/Executable.class",
329 "/modules/java.base/java/lang/reflect/Method.class",
330 "/modules/java.base/java/lang/reflect/Constructor.class",
331 "/modules/java.base/jdk/internal/vm/ContinuationScope.class",
332 "/modules/java.base/jdk/internal/vm/Continuation.class",
333 "/modules/java.base/jdk/internal/vm/StackChunk.class",
334 "/modules/java.base/jdk/internal/reflect/MethodAccessor.class",
335 "/modules/java.base/jdk/internal/reflect/MethodAccessorImpl.class",
336 "/modules/java.base/jdk/internal/reflect/ConstantPool.class",
337 "/modules/java.base/java/lang/annotation/Annotation.class",
338 "/modules/java.base/jdk/internal/reflect/CallerSensitive.class",
339 "/modules/java.base/jdk/internal/reflect/ConstructorAccessor.class",
340 "/modules/java.base/jdk/internal/reflect/ConstructorAccessorImpl.class",
341 "/modules/java.base/jdk/internal/reflect/DirectConstructorHandleAccessor$NativeAccessor.class",
342 "/modules/java.base/java/lang/invoke/MethodHandle.class",
343 "/modules/java.base/java/lang/invoke/DirectMethodHandle.class",
344 "/modules/java.base/java/lang/invoke/VarHandle.class",
345 "/modules/java.base/java/lang/invoke/MemberName.class",
346 "/modules/java.base/java/lang/invoke/ResolvedMethodName.class",
347 "/modules/java.base/java/lang/invoke/MethodHandleNatives.class",
348 "/modules/java.base/java/lang/invoke/LambdaForm.class",
349 "/modules/java.base/java/lang/invoke/TypeDescriptor$OfMethod.class",
350 "/modules/java.base/java/lang/invoke/MethodType.class",
351 "/modules/java.base/java/lang/BootstrapMethodError.class",
352 "/modules/java.base/java/lang/invoke/CallSite.class",
353 "/modules/java.base/jdk/internal/foreign/abi/NativeEntryPoint.class",
354 "/modules/java.base/jdk/internal/foreign/abi/ABIDescriptor.class",
355 "/modules/java.base/jdk/internal/foreign/abi/VMStorage.class",
356 "/modules/java.base/jdk/internal/foreign/abi/UpcallLinker$CallRegs.class",
357 "/modules/java.base/java/lang/invoke/ConstantCallSite.class",
358 "/modules/java.base/java/lang/invoke/MutableCallSite.class",
359 "/modules/java.base/java/lang/invoke/VolatileCallSite.class",
360 "/modules/java.base/java/lang/AssertionStatusDirectives.class",
361 "/modules/java.base/java/lang/Appendable.class",
362 "/modules/java.base/java/lang/AbstractStringBuilder.class",
363 "/modules/java.base/java/lang/StringBuffer.class",
364 "/modules/java.base/java/lang/StringBuilder.class",
365 "/modules/java.base/jdk/internal/misc/UnsafeConstants.class",
366 "/modules/java.base/jdk/internal/misc/Unsafe.class",
367 "/modules/java.base/jdk/internal/module/Modules.class",
368 "/modules/java.base/java/lang/AutoCloseable.class",
369 "/modules/java.base/java/io/Closeable.class",
370 "/modules/java.base/java/io/InputStream.class",
371 "/modules/java.base/java/io/ByteArrayInputStream.class",
372 "/modules/java.base/java/net/URL.class",
373 "/modules/java.base/java/lang/Enum.class",
374 "/modules/java.base/java/util/jar/Manifest.class",
375 "/modules/java.base/jdk/internal/loader/BuiltinClassLoader.class",
376 "/modules/java.base/jdk/internal/loader/ClassLoaders.class",
377 "/modules/java.base/jdk/internal/loader/ClassLoaders$AppClassLoader.class",
378 "/modules/java.base/jdk/internal/loader/ClassLoaders$PlatformClassLoader.class",
379 "/modules/java.base/java/security/CodeSource.class",
380 "/modules/java.base/java/util/concurrent/ConcurrentMap.class",
381 "/modules/java.base/java/util/AbstractMap.class",
382 "/modules/java.base/java/util/concurrent/ConcurrentHashMap.class",
383 "/modules/java.base/java/lang/Iterable.class",
384 "/modules/java.base/java/util/Collection.class",
385 "/modules/java.base/java/util/SequencedCollection.class",
386 "/modules/java.base/java/util/List.class",
387 "/modules/java.base/java/util/RandomAccess.class",
388 "/modules/java.base/java/util/AbstractCollection.class",
389 "/modules/java.base/java/util/AbstractList.class",
390 "/modules/java.base/java/util/ArrayList.class",
391 "/modules/java.base/java/lang/StackTraceElement.class",
392 "/modules/java.base/java/nio/Buffer.class",
393 "/modules/java.base/java/lang/StackWalker.class",
394 "/modules/java.base/java/lang/StackStreamFactory$AbstractStackWalker.class",
395 "/modules/java.base/java/lang/StackWalker$StackFrame.class",
396 "/modules/java.base/java/lang/ClassFrameInfo.class",
397 "/modules/java.base/java/lang/StackFrameInfo.class",
398 "/modules/java.base/java/lang/LiveStackFrame.class",
399 "/modules/java.base/java/lang/LiveStackFrameInfo.class",
400 "/modules/java.base/java/util/concurrent/locks/AbstractOwnableSynchronizer.class",
401 "/modules/java.base/java/lang/Boolean.class",
402 "/modules/java.base/java/lang/Character.class",
403 "/modules/java.base/java/lang/Number.class",
404 "/modules/java.base/java/lang/Float.class",
405 "/modules/java.base/java/lang/Double.class",
406 "/modules/java.base/java/lang/Byte.class",
407 "/modules/java.base/java/lang/Short.class",
408 "/modules/java.base/java/lang/Integer.class",
409 "/modules/java.base/java/lang/Long.class",
410 "/modules/java.base/java/lang/Void.class",
411 "/modules/java.base/java/util/Iterator.class",
412 "/modules/java.base/java/lang/reflect/RecordComponent.class",
413 "/modules/java.base/jdk/internal/vm/vector/VectorSupport.class",
414 "/modules/java.base/jdk/internal/vm/vector/VectorSupport$VectorPayload.class",
415 "/modules/java.base/jdk/internal/vm/vector/VectorSupport$Vector.class",
416 "/modules/java.base/jdk/internal/vm/vector/VectorSupport$VectorMask.class",
417 "/modules/java.base/jdk/internal/vm/vector/VectorSupport$VectorShuffle.class",
418 "/modules/java.base/jdk/internal/vm/FillerObject.class",
419 "/modules/java.base/java/lang/NullPointerException.class",
420 "/modules/java.base/java/lang/ArithmeticException.class",
421 "/modules/java.base/java/lang/IndexOutOfBoundsException.class",
422 "/modules/java.base/java/lang/ArrayIndexOutOfBoundsException.class",
423 "/modules/java.base/java/io/ObjectStreamField.class",
424 "/modules/java.base/java/util/Comparator.class",
425 "/modules/java.base/java/lang/String$CaseInsensitiveComparator.class",
426 "/modules/java.base/jdk/internal/misc/VM.class",
427 "/modules/java.base/java/lang/Module$ArchivedData.class",
428 "/modules/java.base/jdk/internal/misc/CDS.class",
429 "/modules/java.base/java/util/Set.class",
430 "/modules/java.base/java/util/ImmutableCollections$AbstractImmutableCollection.class",
431 "/modules/java.base/java/util/ImmutableCollections$AbstractImmutableSet.class",
432 "/modules/java.base/java/util/ImmutableCollections$Set12.class",
433 "/modules/java.base/java/util/Objects.class",
434 "/modules/java.base/java/util/ImmutableCollections.class",
435 "/modules/java.base/java/util/ImmutableCollections$AbstractImmutableList.class",
436 "/modules/java.base/java/util/ImmutableCollections$ListN.class",
437 "/modules/java.base/java/util/ImmutableCollections$SetN.class",
438 "/modules/java.base/java/util/ImmutableCollections$AbstractImmutableMap.class",
439 "/modules/java.base/java/util/ImmutableCollections$MapN.class",
440 "/modules/java.base/jdk/internal/access/JavaLangReflectAccess.class",
441 "/modules/java.base/java/lang/reflect/ReflectAccess.class",
442 "/modules/java.base/jdk/internal/access/SharedSecrets.class",
443 "/modules/java.base/jdk/internal/reflect/ReflectionFactory.class",
444 "/modules/java.base/java/io/ObjectStreamClass.class",
445 "/modules/java.base/java/lang/Math.class",
446 "/modules/java.base/jdk/internal/reflect/ReflectionFactory$Config.class",
447 "/modules/java.base/jdk/internal/access/JavaLangRefAccess.class",
448 "/modules/java.base/java/lang/ref/ReferenceQueue.class",
449 "/modules/java.base/java/lang/ref/ReferenceQueue$Null.class",
450 "/modules/java.base/java/lang/ref/ReferenceQueue$Lock.class",
451 "/modules/java.base/jdk/internal/access/JavaLangAccess.class",
452 "/modules/java.base/jdk/internal/util/SystemProps.class",
453 "/modules/java.base/jdk/internal/util/SystemProps$Raw.class",
454 "/modules/java.base/java/nio/charset/Charset.class",
455 "/modules/java.base/java/nio/charset/spi/CharsetProvider.class",
456 "/modules/java.base/sun/nio/cs/StandardCharsets.class",
457 "/modules/java.base/java/lang/StringLatin1.class",
458 "/modules/java.base/sun/nio/cs/HistoricallyNamedCharset.class",
459 "/modules/java.base/sun/nio/cs/Unicode.class",
460 "/modules/java.base/sun/nio/cs/UTF_8.class",
461 "/modules/java.base/java/util/HashMap.class",
462 "/modules/java.base/java/lang/StrictMath.class",
463 "/modules/java.base/jdk/internal/util/ArraysSupport.class",
464 "/modules/java.base/java/util/Map$Entry.class",
465 "/modules/java.base/java/util/HashMap$Node.class",
466 "/modules/java.base/java/util/LinkedHashMap$Entry.class",
467 "/modules/java.base/java/util/HashMap$TreeNode.class",
468 "/modules/java.base/java/lang/StringConcatHelper.class",
469 "/modules/java.base/java/lang/VersionProps.class",
470 "/modules/java.base/java/lang/Runtime.class",
471 "/modules/java.base/java/util/concurrent/locks/Lock.class",
472 "/modules/java.base/java/util/concurrent/locks/ReentrantLock.class",
473 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$Segment.class",
474 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$CounterCell.class",
475 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$Node.class",
476 "/modules/java.base/java/util/concurrent/locks/LockSupport.class",
477 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$ReservationNode.class",
478 "/modules/java.base/java/util/AbstractSet.class",
479 "/modules/java.base/java/util/HashMap$EntrySet.class",
480 "/modules/java.base/java/util/HashMap$HashIterator.class",
481 "/modules/java.base/java/util/HashMap$EntryIterator.class",
482 "/modules/java.base/jdk/internal/util/StaticProperty.class",
483 "/modules/java.base/java/io/FileInputStream.class",
484 "/modules/java.base/java/lang/System$In.class",
485 "/modules/java.base/java/io/FileDescriptor.class",
486 "/modules/java.base/jdk/internal/access/JavaIOFileDescriptorAccess.class",
487 "/modules/java.base/java/io/Flushable.class",
488 "/modules/java.base/java/io/OutputStream.class",
489 "/modules/java.base/java/io/FileOutputStream.class",
490 "/modules/java.base/java/lang/System$Out.class",
491 "/modules/java.base/java/io/FilterInputStream.class",
492 "/modules/java.base/java/io/BufferedInputStream.class",
493 "/modules/java.base/java/io/FilterOutputStream.class",
494 "/modules/java.base/java/io/PrintStream.class",
495 "/modules/java.base/java/io/BufferedOutputStream.class",
496 "/modules/java.base/java/io/Writer.class",
497 "/modules/java.base/java/io/OutputStreamWriter.class",
498 "/modules/java.base/sun/nio/cs/StreamEncoder.class",
499 "/modules/java.base/java/nio/charset/CharsetEncoder.class",
500 "/modules/java.base/sun/nio/cs/UTF_8$Encoder.class",
501 "/modules/java.base/java/nio/charset/CodingErrorAction.class",
502 "/modules/java.base/java/util/Arrays.class",
503 "/modules/java.base/java/nio/ByteBuffer.class",
504 "/modules/java.base/jdk/internal/misc/ScopedMemoryAccess.class",
505 "/modules/java.base/java/util/function/Function.class",
506 "/modules/java.base/jdk/internal/util/Preconditions.class",
507 "/modules/java.base/java/util/function/BiFunction.class",
508 "/modules/java.base/jdk/internal/access/JavaNioAccess.class",
509 "/modules/java.base/java/nio/HeapByteBuffer.class",
510 "/modules/java.base/java/nio/ByteOrder.class",
511 "/modules/java.base/java/io/BufferedWriter.class",
512 "/modules/java.base/java/lang/Terminator.class",
513 "/modules/java.base/jdk/internal/misc/Signal$Handler.class",
514 "/modules/java.base/jdk/internal/misc/Signal.class",
515 "/modules/java.base/java/util/Hashtable$Entry.class",
516 "/modules/java.base/jdk/internal/misc/Signal$NativeHandler.class",
517 "/modules/java.base/java/lang/Integer$IntegerCache.class",
518 "/modules/java.base/jdk/internal/misc/OSEnvironment.class",
519 "/modules/java.base/java/lang/Thread$State.class",
520 "/modules/java.base/java/lang/ref/Reference$ReferenceHandler.class",
521 "/modules/java.base/java/lang/Thread$ThreadIdentifiers.class",
522 "/modules/java.base/java/lang/ref/Finalizer$FinalizerThread.class",
523 "/modules/java.base/jdk/internal/ref/Cleaner.class",
524 "/modules/java.base/java/util/Collections.class",
525 "/modules/java.base/java/util/Collections$EmptySet.class",
526 "/modules/java.base/java/util/Collections$EmptyList.class",
527 "/modules/java.base/java/util/Collections$EmptyMap.class",
528 "/modules/java.base/java/lang/IllegalArgumentException.class",
529 "/modules/java.base/java/lang/invoke/MethodHandleStatics.class",
530 "/modules/java.base/java/lang/reflect/ClassFileFormatVersion.class",
531 "/modules/java.base/java/lang/CharacterData.class",
532 "/modules/java.base/java/lang/CharacterDataLatin1.class",
533 "/modules/java.base/jdk/internal/util/ClassFileDumper.class",
534 "/modules/java.base/java/util/HexFormat.class",
535 "/modules/java.base/java/lang/Character$CharacterCache.class",
536 "/modules/java.base/java/util/concurrent/atomic/AtomicInteger.class",
537 "/modules/java.base/jdk/internal/module/ModuleBootstrap.class",
538 "/modules/java.base/java/lang/module/ModuleDescriptor.class",
539 "/modules/java.base/java/lang/invoke/MethodHandles.class",
540 "/modules/java.base/java/lang/invoke/MemberName$Factory.class",
541 "/modules/java.base/jdk/internal/reflect/Reflection.class",
542 "/modules/java.base/java/lang/invoke/MethodHandles$Lookup.class",
543 "/modules/java.base/java/util/ImmutableCollections$MapN$MapNIterator.class",
544 "/modules/java.base/java/util/KeyValueHolder.class",
545 "/modules/java.base/sun/invoke/util/VerifyAccess.class",
546 "/modules/java.base/java/lang/reflect/Modifier.class",
547 "/modules/java.base/jdk/internal/access/JavaLangModuleAccess.class",
548 "/modules/java.base/java/io/File.class",
549 "/modules/java.base/java/io/DefaultFileSystem.class",
550 "/modules/java.base/java/io/FileSystem.class",
551 "/modules/java.base/java/io/UnixFileSystem.class",
552 "/modules/java.base/jdk/internal/util/DecimalDigits.class",
553 "/modules/java.base/jdk/internal/module/ModulePatcher.class",
554 "/modules/java.base/jdk/internal/module/ModuleBootstrap$IllegalNativeAccess.class",
555 "/modules/java.base/java/util/HashSet.class",
556 "/modules/java.base/jdk/internal/module/ModuleLoaderMap.class",
557 "/modules/java.base/jdk/internal/module/ModuleLoaderMap$Modules.class",
558 "/modules/java.base/jdk/internal/module/ModuleBootstrap$Counters.class",
559 "/modules/java.base/jdk/internal/module/ArchivedBootLayer.class",
560 "/modules/java.base/jdk/internal/module/ArchivedModuleGraph.class",
561 "/modules/java.base/jdk/internal/module/SystemModuleFinders.class",
562 "/modules/java.base/java/net/URI.class",
563 "/modules/java.base/jdk/internal/access/JavaNetUriAccess.class",
564 "/modules/java.base/jdk/internal/module/SystemModulesMap.class",
565 "/modules/java.base/jdk/internal/module/SystemModules.class",
566 "/modules/java.base/jdk/internal/module/ExplodedSystemModules.class",
567 "/modules/java.base/java/nio/file/Watchable.class",
568 "/modules/java.base/java/nio/file/Path.class",
569 "/modules/java.base/java/nio/file/FileSystems.class",
570 "/modules/java.base/sun/nio/fs/DefaultFileSystemProvider.class",
571 "/modules/java.base/java/nio/file/spi/FileSystemProvider.class",
572 "/modules/java.base/sun/nio/fs/AbstractFileSystemProvider.class",
573 "/modules/java.base/sun/nio/fs/UnixFileSystemProvider.class",
574 "/modules/java.base/sun/nio/fs/LinuxFileSystemProvider.class",
575 "/modules/java.base/java/nio/file/OpenOption.class",
576 "/modules/java.base/java/nio/file/StandardOpenOption.class",
577 "/modules/java.base/java/nio/file/FileSystem.class",
578 "/modules/java.base/sun/nio/fs/UnixFileSystem.class",
579 "/modules/java.base/sun/nio/fs/LinuxFileSystem.class",
580 "/modules/java.base/sun/nio/fs/UnixPath.class",
581 "/modules/java.base/sun/nio/fs/Util.class",
582 "/modules/java.base/java/lang/StringCoding.class",
583 "/modules/java.base/sun/nio/fs/UnixNativeDispatcher.class",
584 "/modules/java.base/jdk/internal/loader/BootLoader.class",
585 "/modules/java.base/java/lang/Module$EnableNativeAccess.class",
586 "/modules/java.base/jdk/internal/loader/NativeLibraries.class",
587 "/modules/java.base/jdk/internal/loader/ClassLoaderHelper.class",
588 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$CollectionView.class",
589 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$KeySetView.class",
590 "/modules/java.base/jdk/internal/loader/NativeLibraries$LibraryPaths.class",
591 "/modules/java.base/java/io/File$PathStatus.class",
592 "/modules/java.base/jdk/internal/loader/NativeLibraries$CountedLock.class",
593 "/modules/java.base/java/util/concurrent/locks/AbstractQueuedSynchronizer.class",
594 "/modules/java.base/java/util/concurrent/locks/ReentrantLock$Sync.class",
595 "/modules/java.base/java/util/concurrent/locks/ReentrantLock$NonfairSync.class",
596 "/modules/java.base/jdk/internal/loader/NativeLibraries$NativeLibraryContext.class",
597 "/modules/java.base/java/util/Queue.class",
598 "/modules/java.base/java/util/Deque.class",
599 "/modules/java.base/java/util/ArrayDeque.class",
600 "/modules/java.base/java/util/ArrayDeque$DeqIterator.class",
601 "/modules/java.base/jdk/internal/loader/NativeLibrary.class",
602 "/modules/java.base/jdk/internal/loader/NativeLibraries$NativeLibraryImpl.class",
603 "/modules/java.base/java/security/cert/Certificate.class",
604 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$ValuesView.class",
605 "/modules/java.base/java/util/Enumeration.class",
606 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$Traverser.class",
607 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$BaseIterator.class",
608 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$ValueIterator.class",
609 "/modules/java.base/java/nio/file/attribute/BasicFileAttributes.class",
610 "/modules/java.base/java/nio/file/attribute/PosixFileAttributes.class",
611 "/modules/java.base/sun/nio/fs/UnixFileAttributes.class",
612 "/modules/java.base/sun/nio/fs/UnixFileStoreAttributes.class",
613 "/modules/java.base/sun/nio/fs/UnixMountEntry.class",
614 "/modules/java.base/java/nio/file/CopyOption.class",
615 "/modules/java.base/java/nio/file/LinkOption.class",
616 "/modules/java.base/java/nio/file/Files.class",
617 "/modules/java.base/sun/nio/fs/NativeBuffers.class",
618 "/modules/java.base/java/lang/ThreadLocal.class",
619 "/modules/java.base/jdk/internal/misc/CarrierThreadLocal.class",
620 "/modules/java.base/jdk/internal/misc/TerminatingThreadLocal.class",
621 "/modules/java.base/java/lang/ThreadLocal$ThreadLocalMap.class",
622 "/modules/java.base/java/lang/ThreadLocal$ThreadLocalMap$Entry.class",
623 "/modules/java.base/java/util/IdentityHashMap.class",
624 "/modules/java.base/java/util/Collections$SetFromMap.class",
625 "/modules/java.base/java/util/IdentityHashMap$KeySet.class",
626 "/modules/java.base/sun/nio/fs/NativeBuffer.class",
627 "/modules/java.base/jdk/internal/ref/CleanerFactory.class",
628 "/modules/java.base/java/util/concurrent/ThreadFactory.class",
629 "/modules/java.base/java/lang/ref/Cleaner.class",
630 "/modules/java.base/jdk/internal/ref/CleanerImpl.class",
631 "/modules/java.base/jdk/internal/ref/CleanerImpl$CleanableList.class",
632 "/modules/java.base/jdk/internal/ref/CleanerImpl$CleanableList$Node.class",
633 "/modules/java.base/java/lang/ref/Cleaner$Cleanable.class",
634 "/modules/java.base/jdk/internal/ref/PhantomCleanable.class",
635 "/modules/java.base/jdk/internal/ref/CleanerImpl$CleanerCleanable.class",
636 "/modules/java.base/jdk/internal/misc/InnocuousThread.class",
637 "/modules/java.base/sun/nio/fs/NativeBuffer$Deallocator.class",
638 "/modules/java.base/jdk/internal/ref/CleanerImpl$PhantomCleanableRef.class",
639 "/modules/java.base/java/lang/module/ModuleFinder.class",
640 "/modules/java.base/jdk/internal/module/ModulePath.class",
641 "/modules/java.base/java/util/jar/Attributes$Name.class",
642 "/modules/java.base/java/lang/reflect/Array.class",
643 "/modules/java.base/jdk/internal/perf/PerfCounter.class",
644 "/modules/java.base/jdk/internal/perf/Perf.class",
645 "/modules/java.base/sun/nio/ch/DirectBuffer.class",
646 "/modules/java.base/java/nio/MappedByteBuffer.class",
647 "/modules/java.base/java/nio/DirectByteBuffer.class",
648 "/modules/java.base/java/nio/Bits.class",
649 "/modules/java.base/java/util/concurrent/atomic/AtomicLong.class",
650 "/modules/java.base/jdk/internal/misc/VM$BufferPool.class",
651 "/modules/java.base/java/nio/LongBuffer.class",
652 "/modules/java.base/java/nio/DirectLongBufferU.class",
653 "/modules/java.base/java/util/zip/ZipConstants.class",
654 "/modules/java.base/java/util/zip/ZipFile.class",
655 "/modules/java.base/java/util/jar/JarFile.class",
656 "/modules/java.base/java/util/BitSet.class",
657 "/modules/java.base/jdk/internal/access/JavaUtilZipFileAccess.class",
658 "/modules/java.base/jdk/internal/access/JavaUtilJarAccess.class",
659 "/modules/java.base/java/util/jar/JavaUtilJarAccessImpl.class",
660 "/modules/java.base/java/lang/Runtime$Version.class",
661 "/modules/java.base/java/util/ImmutableCollections$List12.class",
662 "/modules/java.base/java/util/Optional.class",
663 "/modules/java.base/java/nio/file/attribute/DosFileAttributes.class",
664 "/modules/java.base/java/nio/file/attribute/AttributeView.class",
665 "/modules/java.base/java/nio/file/attribute/FileAttributeView.class",
666 "/modules/java.base/java/nio/file/attribute/BasicFileAttributeView.class",
667 "/modules/java.base/java/nio/file/attribute/DosFileAttributeView.class",
668 "/modules/java.base/java/nio/file/attribute/UserDefinedFileAttributeView.class",
669 "/modules/java.base/sun/nio/fs/UnixFileAttributeViews.class",
670 "/modules/java.base/sun/nio/fs/DynamicFileAttributeView.class",
671 "/modules/java.base/sun/nio/fs/AbstractBasicFileAttributeView.class",
672 "/modules/java.base/sun/nio/fs/UnixFileAttributeViews$Basic.class",
673 "/modules/java.base/sun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes.class",
674 "/modules/java.base/java/nio/file/DirectoryStream$Filter.class",
675 "/modules/java.base/java/nio/file/Files$AcceptAllFilter.class",
676 "/modules/java.base/java/nio/file/DirectoryStream.class",
677 "/modules/java.base/java/nio/file/SecureDirectoryStream.class",
678 "/modules/java.base/sun/nio/fs/UnixSecureDirectoryStream.class",
679 "/modules/java.base/sun/nio/fs/UnixDirectoryStream.class",
680 "/modules/java.base/java/util/concurrent/locks/ReadWriteLock.class",
681 "/modules/java.base/java/util/concurrent/locks/ReentrantReadWriteLock.class",
682 "/modules/java.base/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.class",
683 "/modules/java.base/java/util/concurrent/locks/ReentrantReadWriteLock$Sync.class",
684 "/modules/java.base/java/util/concurrent/locks/ReentrantReadWriteLock$FairSync.class",
685 "/modules/java.base/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter.class",
686 "/modules/java.base/java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock.class",
687 "/modules/java.base/java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock.class",
688 "/modules/java.base/sun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator.class",
689 "/modules/java.base/java/nio/file/attribute/FileAttribute.class",
690 "/modules/java.base/sun/nio/fs/UnixFileModeAttribute.class",
691 "/modules/java.base/sun/nio/fs/UnixChannelFactory.class",
692 "/modules/java.base/sun/nio/fs/UnixChannelFactory$Flags.class",
693 "/modules/java.base/java/util/Collections$EmptyIterator.class",
694 "/modules/java.base/java/nio/channels/Channel.class",
695 "/modules/java.base/java/nio/channels/ReadableByteChannel.class",
696 "/modules/java.base/java/nio/channels/WritableByteChannel.class",
697 "/modules/java.base/java/nio/channels/ByteChannel.class",
698 "/modules/java.base/java/nio/channels/SeekableByteChannel.class",
699 "/modules/java.base/java/nio/channels/GatheringByteChannel.class",
700 "/modules/java.base/java/nio/channels/ScatteringByteChannel.class",
701 "/modules/java.base/java/nio/channels/InterruptibleChannel.class",
702 "/modules/java.base/java/nio/channels/spi/AbstractInterruptibleChannel.class",
703 "/modules/java.base/java/nio/channels/FileChannel.class",
704 "/modules/java.base/sun/nio/ch/FileChannelImpl.class",
705 "/modules/java.base/sun/nio/ch/NativeDispatcher.class",
706 "/modules/java.base/sun/nio/ch/FileDispatcher.class",
707 "/modules/java.base/sun/nio/ch/UnixFileDispatcherImpl.class",
708 "/modules/java.base/sun/nio/ch/FileDispatcherImpl.class",
709 "/modules/java.base/sun/nio/ch/IOUtil.class",
710 "/modules/java.base/sun/nio/ch/Interruptible.class",
711 "/modules/java.base/sun/nio/ch/NativeThreadSet.class",
712 "/modules/java.base/sun/nio/ch/FileChannelImpl$Closer.class",
713 "/modules/java.base/java/nio/channels/Channels.class",
714 "/modules/java.base/sun/nio/ch/Streams.class",
715 "/modules/java.base/sun/nio/ch/SelChImpl.class",
716 "/modules/java.base/java/nio/channels/NetworkChannel.class",
717 "/modules/java.base/java/nio/channels/SelectableChannel.class",
718 "/modules/java.base/java/nio/channels/spi/AbstractSelectableChannel.class",
719 "/modules/java.base/java/nio/channels/SocketChannel.class",
720 "/modules/java.base/sun/nio/ch/SocketChannelImpl.class",
721 "/modules/java.base/sun/nio/ch/ChannelInputStream.class",
722 "/modules/java.base/java/lang/invoke/LambdaMetafactory.class",
723 "/modules/java.base/java/util/function/Supplier.class",
724 "/modules/java.base/jdk/internal/util/ReferencedKeySet.class",
725 "/modules/java.base/jdk/internal/util/ReferencedKeyMap.class",
726 "/modules/java.base/jdk/internal/util/ReferenceKey.class",
727 "/modules/java.base/jdk/internal/util/StrongReferenceKey.class",
728 "/modules/java.base/java/lang/invoke/MethodTypeForm.class",
729 "/modules/java.base/jdk/internal/util/WeakReferenceKey.class",
730 "/modules/java.base/sun/invoke/util/Wrapper.class",
731 "/modules/java.base/sun/invoke/util/Wrapper$Format.class",
732 "/modules/java.base/java/lang/constant/ConstantDescs.class",
733 "/modules/java.base/java/lang/constant/ClassDesc.class",
734 "/modules/java.base/jdk/internal/constant/ClassOrInterfaceDescImpl.class",
735 "/modules/java.base/jdk/internal/constant/ArrayClassDescImpl.class",
736 "/modules/java.base/jdk/internal/constant/ConstantUtils.class",
737 "/modules/java.base/java/lang/constant/DirectMethodHandleDesc$Kind.class",
738 "/modules/java.base/java/lang/constant/MethodTypeDesc.class",
739 "/modules/java.base/jdk/internal/constant/MethodTypeDescImpl.class",
740 "/modules/java.base/java/lang/constant/MethodHandleDesc.class",
741 "/modules/java.base/java/lang/constant/DirectMethodHandleDesc.class",
742 "/modules/java.base/jdk/internal/constant/DirectMethodHandleDescImpl.class",
743 "/modules/java.base/java/lang/constant/DynamicConstantDesc.class",
744 "/modules/java.base/jdk/internal/constant/PrimitiveClassDescImpl.class",
745 "/modules/java.base/java/lang/constant/DynamicConstantDesc$AnonymousDynamicConstantDesc.class",
746 "/modules/java.base/java/lang/invoke/LambdaForm$NamedFunction.class",
747 "/modules/java.base/java/lang/invoke/DirectMethodHandle$Holder.class",
748 "/modules/java.base/sun/invoke/util/ValueConversions.class",
749 "/modules/java.base/java/lang/invoke/MethodHandleImpl.class",
750 "/modules/java.base/java/lang/invoke/Invokers.class",
751 "/modules/java.base/java/lang/invoke/LambdaForm$Kind.class",
752 "/modules/java.base/java/lang/NoSuchMethodException.class",
753 "/modules/java.base/java/lang/invoke/LambdaForm$BasicType.class",
754 "/modules/java.base/java/lang/classfile/TypeKind.class",
755 "/modules/java.base/java/lang/invoke/LambdaForm$Name.class",
756 "/modules/java.base/java/lang/invoke/LambdaForm$Holder.class",
757 "/modules/java.base/java/lang/invoke/InvokerBytecodeGenerator.class",
758 "/modules/java.base/java/lang/classfile/AnnotationElement.class",
759 "/modules/java.base/java/lang/classfile/Annotation.class",
760 "/modules/java.base/java/lang/classfile/constantpool/ConstantPool.class",
761 "/modules/java.base/java/lang/classfile/constantpool/ConstantPoolBuilder.class",
762 "/modules/java.base/jdk/internal/classfile/impl/TemporaryConstantPool.class",
763 "/modules/java.base/java/lang/classfile/constantpool/PoolEntry.class",
764 "/modules/java.base/java/lang/classfile/constantpool/AnnotationConstantValueEntry.class",
765 "/modules/java.base/java/lang/classfile/constantpool/Utf8Entry.class",
766 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry.class",
767 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$Utf8EntryImpl.class",
768 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$Utf8EntryImpl$State.class",
769 "/modules/java.base/jdk/internal/classfile/impl/AnnotationImpl.class",
770 "/modules/java.base/java/lang/classfile/ClassFileElement.class",
771 "/modules/java.base/java/lang/classfile/Attribute.class",
772 "/modules/java.base/java/lang/classfile/ClassElement.class",
773 "/modules/java.base/java/lang/classfile/MethodElement.class",
774 "/modules/java.base/java/lang/classfile/FieldElement.class",
775 "/modules/java.base/java/lang/classfile/attribute/RuntimeVisibleAnnotationsAttribute.class",
776 "/modules/java.base/jdk/internal/classfile/impl/Util$Writable.class",
777 "/modules/java.base/jdk/internal/classfile/impl/AbstractElement.class",
778 "/modules/java.base/jdk/internal/classfile/impl/UnboundAttribute.class",
779 "/modules/java.base/jdk/internal/classfile/impl/UnboundAttribute$UnboundRuntimeVisibleAnnotationsAttribute.class",
780 "/modules/java.base/java/lang/classfile/Attributes.class",
781 "/modules/java.base/java/lang/classfile/AttributeMapper.class",
782 "/modules/java.base/jdk/internal/classfile/impl/AbstractAttributeMapper.class",
783 "/modules/java.base/jdk/internal/classfile/impl/AbstractAttributeMapper$RuntimeVisibleAnnotationsMapper.class",
784 "/modules/java.base/java/lang/classfile/AttributeMapper$AttributeStability.class",
785 "/modules/java.base/java/lang/invoke/MethodHandleImpl$Intrinsic.class",
786 "/modules/java.base/jdk/internal/classfile/impl/SplitConstantPool.class",
787 "/modules/java.base/java/lang/classfile/BootstrapMethodEntry.class",
788 "/modules/java.base/jdk/internal/classfile/impl/BootstrapMethodEntryImpl.class",
789 "/modules/java.base/jdk/internal/classfile/impl/EntryMap.class",
790 "/modules/java.base/jdk/internal/classfile/impl/Util.class",
791 "/modules/java.base/java/lang/classfile/constantpool/LoadableConstantEntry.class",
792 "/modules/java.base/java/lang/classfile/constantpool/ClassEntry.class",
793 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$AbstractRefEntry.class",
794 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$AbstractNamedEntry.class",
795 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$ClassEntryImpl.class",
796 "/modules/java.base/java/util/function/Consumer.class",
797 "/modules/java.base/java/lang/classfile/ClassFile.class",
798 "/modules/java.base/jdk/internal/classfile/impl/ClassFileImpl.class",
799 "/modules/java.base/java/lang/classfile/ClassFileBuilder.class",
800 "/modules/java.base/java/lang/classfile/ClassBuilder.class",
801 "/modules/java.base/jdk/internal/classfile/impl/AbstractDirectBuilder.class",
802 "/modules/java.base/jdk/internal/classfile/impl/DirectClassBuilder.class",
803 "/modules/java.base/jdk/internal/classfile/impl/AttributeHolder.class",
804 "/modules/java.base/java/lang/classfile/Superclass.class",
805 "/modules/java.base/jdk/internal/classfile/impl/SuperclassImpl.class",
806 "/modules/java.base/java/lang/classfile/attribute/SourceFileAttribute.class",
807 "/modules/java.base/jdk/internal/classfile/impl/UnboundAttribute$UnboundSourceFileAttribute.class",
808 "/modules/java.base/jdk/internal/classfile/impl/AbstractAttributeMapper$SourceFileMapper.class",
809 "/modules/java.base/jdk/internal/classfile/impl/BoundAttribute.class",
810 "/modules/java.base/java/lang/classfile/MethodBuilder.class",
811 "/modules/java.base/jdk/internal/classfile/impl/MethodInfo.class",
812 "/modules/java.base/jdk/internal/classfile/impl/TerminalMethodBuilder.class",
813 "/modules/java.base/jdk/internal/classfile/impl/DirectMethodBuilder.class",
814 "/modules/java.base/java/lang/classfile/constantpool/NameAndTypeEntry.class",
815 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$AbstractRefsEntry.class",
816 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$NameAndTypeEntryImpl.class",
817 "/modules/java.base/java/lang/classfile/constantpool/MemberRefEntry.class",
818 "/modules/java.base/java/lang/classfile/constantpool/FieldRefEntry.class",
819 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$AbstractMemberRefEntry.class",
820 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$FieldRefEntryImpl.class",
821 "/modules/java.base/java/lang/invoke/InvokerBytecodeGenerator$ClassData.class",
822 "/modules/java.base/java/lang/classfile/CodeBuilder.class",
823 "/modules/java.base/jdk/internal/classfile/impl/LabelContext.class",
824 "/modules/java.base/jdk/internal/classfile/impl/TerminalCodeBuilder.class",
825 "/modules/java.base/jdk/internal/classfile/impl/DirectCodeBuilder.class",
826 "/modules/java.base/java/lang/classfile/CodeElement.class",
827 "/modules/java.base/java/lang/classfile/PseudoInstruction.class",
828 "/modules/java.base/java/lang/classfile/instruction/CharacterRange.class",
829 "/modules/java.base/java/lang/classfile/instruction/LocalVariable.class",
830 "/modules/java.base/java/lang/classfile/instruction/LocalVariableType.class",
831 "/modules/java.base/jdk/internal/classfile/impl/DirectCodeBuilder$DeferredLabel.class",
832 "/modules/java.base/java/lang/classfile/BufWriter.class",
833 "/modules/java.base/jdk/internal/classfile/impl/BufWriterImpl.class",
834 "/modules/java.base/java/lang/classfile/Label.class",
835 "/modules/java.base/java/lang/classfile/instruction/LabelTarget.class",
836 "/modules/java.base/jdk/internal/classfile/impl/LabelImpl.class",
837 "/modules/java.base/sun/invoke/util/VerifyType.class",
838 "/modules/java.base/java/lang/classfile/Opcode.class",
839 "/modules/java.base/java/lang/classfile/Opcode$Kind.class",
840 "/modules/java.base/java/lang/classfile/constantpool/MethodRefEntry.class",
841 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$MethodRefEntryImpl.class",
842 "/modules/java.base/sun/invoke/empty/Empty.class",
843 "/modules/java.base/jdk/internal/classfile/impl/BytecodeHelpers.class",
844 "/modules/java.base/jdk/internal/classfile/impl/UnboundAttribute$AdHocAttribute.class",
845 "/modules/java.base/jdk/internal/classfile/impl/AbstractAttributeMapper$CodeMapper.class",
846 "/modules/java.base/java/lang/classfile/FieldBuilder.class",
847 "/modules/java.base/jdk/internal/classfile/impl/TerminalFieldBuilder.class",
848 "/modules/java.base/jdk/internal/classfile/impl/DirectFieldBuilder.class",
849 "/modules/java.base/java/lang/classfile/CustomAttribute.class",
850 "/modules/java.base/jdk/internal/classfile/impl/AnnotationReader.class",
851 "/modules/java.base/java/util/ListIterator.class",
852 "/modules/java.base/java/util/ImmutableCollections$ListItr.class",
853 "/modules/java.base/jdk/internal/classfile/impl/StackMapGenerator.class",
854 "/modules/java.base/jdk/internal/classfile/impl/StackMapGenerator$Frame.class",
855 "/modules/java.base/jdk/internal/classfile/impl/StackMapGenerator$Type.class",
856 "/modules/java.base/jdk/internal/classfile/impl/RawBytecodeHelper.class",
857 "/modules/java.base/jdk/internal/classfile/impl/RawBytecodeHelper$CodeRange.class",
858 "/modules/java.base/jdk/internal/classfile/impl/ClassHierarchyImpl.class",
859 "/modules/java.base/java/lang/classfile/ClassHierarchyResolver.class",
860 "/modules/java.base/jdk/internal/classfile/impl/ClassHierarchyImpl$ClassLoadingClassHierarchyResolver.class",
861 "/modules/java.base/jdk/internal/classfile/impl/ClassHierarchyImpl$CachedClassHierarchyResolver.class",
862 "/modules/java.base/java/lang/classfile/ClassHierarchyResolver$ClassHierarchyInfo.class",
863 "/modules/java.base/jdk/internal/classfile/impl/ClassHierarchyImpl$ClassHierarchyInfoImpl.class",
864 "/modules/java.base/java/lang/classfile/ClassReader.class",
865 "/modules/java.base/jdk/internal/classfile/impl/ClassReaderImpl.class",
866 "/modules/java.base/jdk/internal/util/ModifiedUtf.class",
867 "/modules/java.base/java/lang/invoke/MethodHandles$Lookup$ClassDefiner.class",
868 "/modules/java.base/java/lang/IncompatibleClassChangeError.class",
869 "/modules/java.base/java/lang/NoSuchMethodError.class",
870 "/modules/java.base/java/lang/invoke/BootstrapMethodInvoker.class",
871 "/modules/java.base/java/lang/invoke/AbstractValidatingLambdaMetafactory.class",
872 "/modules/java.base/java/lang/invoke/InnerClassLambdaMetafactory.class",
873 "/modules/java.base/java/lang/invoke/MethodHandleInfo.class",
874 "/modules/java.base/java/lang/invoke/InfoFromMemberName.class",
875 "/modules/java.base/java/util/ImmutableCollections$Access.class",
876 "/modules/java.base/jdk/internal/access/JavaUtilCollectionAccess.class",
877 "/modules/java.base/java/lang/classfile/Interfaces.class",
878 "/modules/java.base/jdk/internal/classfile/impl/InterfacesImpl.class",
879 "/modules/java.base/java/lang/invoke/TypeConvertingMethodAdapter.class",
880 "/modules/java.base/java/lang/invoke/DirectMethodHandle$Constructor.class",
881 "/modules/java.base/jdk/internal/access/JavaLangInvokeAccess.class",
882 "/modules/java.base/java/lang/invoke/VarHandle$AccessMode.class",
883 "/modules/java.base/java/lang/invoke/VarHandle$AccessType.class",
884 "/modules/java.base/java/lang/invoke/Invokers$Holder.class",
885 "/modules/java.base/jdk/internal/module/ModuleInfo.class",
886 "/modules/java.base/java/io/DataInput.class",
887 "/modules/java.base/java/io/DataInputStream.class",
888 "/modules/java.base/jdk/internal/module/ModuleInfo$CountingDataInput.class",
889 "/modules/java.base/sun/nio/ch/NativeThread.class",
890 "/modules/java.base/jdk/internal/misc/Blocker.class",
891 "/modules/java.base/sun/nio/ch/Util.class",
892 "/modules/java.base/sun/nio/ch/Util$BufferCache.class",
893 "/modules/java.base/sun/nio/ch/IOStatus.class",
894 "/modules/java.base/jdk/internal/util/ByteArray.class",
895 "/modules/java.base/java/lang/invoke/VarHandles.class",
896 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsShorts$ByteArrayViewVarHandle.class",
897 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsShorts$ArrayHandle.class",
898 "/modules/java.base/java/lang/invoke/VarHandleGuards.class",
899 "/modules/java.base/java/lang/invoke/VarForm.class",
900 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsChars$ByteArrayViewVarHandle.class",
901 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsChars$ArrayHandle.class",
902 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsInts$ByteArrayViewVarHandle.class",
903 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsInts$ArrayHandle.class",
904 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsFloats$ByteArrayViewVarHandle.class",
905 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsFloats$ArrayHandle.class",
906 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsLongs$ByteArrayViewVarHandle.class",
907 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsLongs$ArrayHandle.class",
908 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsDoubles$ByteArrayViewVarHandle.class",
909 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsDoubles$ArrayHandle.class",
910 "/modules/java.base/java/lang/invoke/VarHandle$AccessDescriptor.class",
911 "/modules/java.base/jdk/internal/module/ModuleInfo$ConstantPool.class",
912 "/modules/java.base/jdk/internal/module/ModuleInfo$ConstantPool$Entry.class",
913 "/modules/java.base/jdk/internal/module/ModuleInfo$ConstantPool$IndexEntry.class",
914 "/modules/java.base/java/nio/charset/StandardCharsets.class",
915 "/modules/java.base/sun/nio/cs/US_ASCII.class",
916 "/modules/java.base/sun/nio/cs/ISO_8859_1.class",
917 "/modules/java.base/sun/nio/cs/UTF_16BE.class",
918 "/modules/java.base/sun/nio/cs/UTF_16LE.class",
919 "/modules/java.base/sun/nio/cs/UTF_16.class",
920 "/modules/java.base/sun/nio/cs/UTF_32BE.class",
921 "/modules/java.base/sun/nio/cs/UTF_32LE.class",
922 "/modules/java.base/sun/nio/cs/UTF_32.class",
923 "/modules/java.base/jdk/internal/module/ModuleInfo$ConstantPool$ValueEntry.class",
924 "/modules/java.base/java/lang/module/ModuleDescriptor$Builder.class",
925 "/modules/java.base/java/lang/module/ModuleDescriptor$Modifier.class",
926 "/modules/java.base/java/lang/reflect/AccessFlag.class",
927 "/modules/java.base/java/lang/reflect/AccessFlag$Location.class",
928 "/modules/java.base/java/lang/module/ModuleDescriptor$Requires$Modifier.class",
929 "/modules/java.base/java/lang/module/ModuleDescriptor$Requires.class",
930 "/modules/java.base/java/util/HashMap$KeySet.class",
931 "/modules/java.base/java/util/HashMap$KeyIterator.class",
932 "/modules/java.base/jdk/internal/module/Checks.class",
933 "/modules/java.base/java/util/ArrayList$Itr.class",
934 "/modules/java.base/java/lang/module/ModuleDescriptor$Provides.class",
935 "/modules/java.base/java/util/Collections$UnmodifiableCollection.class",
936 "/modules/java.base/java/util/Collections$UnmodifiableSet.class",
937 "/modules/java.base/java/util/HashMap$Values.class",
938 "/modules/java.base/java/util/HashMap$ValueIterator.class",
939 "/modules/java.base/java/util/ImmutableCollections$SetN$SetNIterator.class",
940 "/modules/java.base/jdk/internal/module/ModuleInfo$Attributes.class",
941 "/modules/java.base/jdk/internal/module/ModuleReferences.class",
942 "/modules/java.base/java/lang/module/ModuleReader.class",
943 "/modules/java.base/sun/nio/fs/UnixUriUtils.class",
944 "/modules/java.base/java/net/URI$Parser.class",
945 "/modules/java.base/java/lang/module/ModuleReference.class",
946 "/modules/java.base/jdk/internal/module/ModuleReferenceImpl.class",
947 "/modules/java.base/java/lang/module/ModuleDescriptor$Exports.class",
948 "/modules/java.base/java/lang/module/ModuleDescriptor$Opens.class",
949 "/modules/java.base/sun/nio/fs/UnixException.class",
950 "/modules/java.base/java/io/IOException.class",
951 "/modules/java.base/jdk/internal/loader/ArchivedClassLoaders.class",
952 "/modules/java.base/jdk/internal/loader/ClassLoaders$BootClassLoader.class",
953 "/modules/java.base/java/lang/ClassLoader$ParallelLoaders.class",
954 "/modules/java.base/java/util/WeakHashMap.class",
955 "/modules/java.base/java/util/WeakHashMap$Entry.class",
956 "/modules/java.base/java/util/WeakHashMap$KeySet.class",
957 "/modules/java.base/java/security/Principal.class",
958 "/modules/java.base/jdk/internal/loader/URLClassPath.class",
959 "/modules/java.base/java/net/URLStreamHandlerFactory.class",
960 "/modules/java.base/java/net/URL$DefaultFactory.class",
961 "/modules/java.base/jdk/internal/access/JavaNetURLAccess.class",
962 "/modules/java.base/sun/net/www/ParseUtil.class",
963 "/modules/java.base/java/net/URLStreamHandler.class",
964 "/modules/java.base/sun/net/www/protocol/file/Handler.class",
965 "/modules/java.base/sun/net/util/IPAddressUtil.class",
966 "/modules/java.base/sun/net/util/IPAddressUtil$MASKS.class",
967 "/modules/java.base/sun/net/www/protocol/jar/Handler.class",
968 "/modules/java.base/jdk/internal/module/ServicesCatalog.class",
969 "/modules/java.base/jdk/internal/loader/AbstractClassLoaderValue.class",
970 "/modules/java.base/jdk/internal/loader/ClassLoaderValue.class",
971 "/modules/java.base/jdk/internal/loader/BuiltinClassLoader$LoadedModule.class",
972 "/modules/java.base/jdk/internal/module/DefaultRoots.class",
973 "/modules/java.base/java/util/Spliterator.class",
974 "/modules/java.base/java/util/HashMap$HashMapSpliterator.class",
975 "/modules/java.base/java/util/HashMap$ValueSpliterator.class",
976 "/modules/java.base/java/util/stream/StreamSupport.class",
977 "/modules/java.base/java/util/stream/BaseStream.class",
978 "/modules/java.base/java/util/stream/Stream.class",
979 "/modules/java.base/java/util/stream/PipelineHelper.class",
980 "/modules/java.base/java/util/stream/AbstractPipeline.class",
981 "/modules/java.base/java/util/stream/ReferencePipeline.class",
982 "/modules/java.base/java/util/stream/ReferencePipeline$Head.class",
983 "/modules/java.base/java/util/stream/StreamOpFlag.class",
984 "/modules/java.base/java/util/stream/StreamOpFlag$Type.class",
985 "/modules/java.base/java/util/stream/StreamOpFlag$MaskBuilder.class",
986 "/modules/java.base/java/util/EnumMap.class",
987 "/modules/java.base/java/lang/Class$ReflectionData.class",
988 "/modules/java.base/java/lang/Class$Atomic.class",
989 "/modules/java.base/java/lang/PublicMethods$MethodList.class",
990 "/modules/java.base/java/lang/PublicMethods$Key.class",
991 "/modules/java.base/sun/reflect/annotation/AnnotationParser.class",
992 "/modules/java.base/jdk/internal/reflect/MethodHandleAccessorFactory.class",
993 "/modules/java.base/jdk/internal/reflect/MethodHandleAccessorFactory$LazyStaticHolder.class",
994 "/modules/java.base/java/lang/invoke/BoundMethodHandle.class",
995 "/modules/java.base/java/lang/invoke/ClassSpecializer.class",
996 "/modules/java.base/java/lang/invoke/BoundMethodHandle$Specializer.class",
997 "/modules/java.base/jdk/internal/vm/annotation/Stable.class",
998 "/modules/java.base/java/lang/invoke/ClassSpecializer$SpeciesData.class",
999 "/modules/java.base/java/lang/invoke/BoundMethodHandle$SpeciesData.class",
1000 "/modules/java.base/java/lang/invoke/ClassSpecializer$Factory.class",
1001 "/modules/java.base/java/lang/invoke/BoundMethodHandle$Specializer$Factory.class",
1002 "/modules/java.base/java/lang/invoke/SimpleMethodHandle.class",
1003 "/modules/java.base/java/lang/NoSuchFieldException.class",
1004 "/modules/java.base/java/lang/invoke/BoundMethodHandle$Species_L.class",
1005 "/modules/java.base/java/lang/invoke/DirectMethodHandle$Accessor.class",
1006 "/modules/java.base/java/lang/invoke/DelegatingMethodHandle.class",
1007 "/modules/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class",
1008 "/modules/java.base/java/lang/invoke/LambdaFormEditor.class",
1009 "/modules/java.base/java/lang/invoke/LambdaFormEditor$TransformKey.class",
1010 "/modules/java.base/java/lang/invoke/LambdaFormBuffer.class",
1011 "/modules/java.base/java/lang/invoke/LambdaFormEditor$Transform.class",
1012 "/modules/java.base/jdk/internal/reflect/DirectMethodHandleAccessor.class",
1013 "/modules/java.base/java/util/stream/Collectors.class",
1014 "/modules/java.base/java/util/stream/Collector$Characteristics.class",
1015 "/modules/java.base/java/util/EnumSet.class",
1016 "/modules/java.base/java/util/RegularEnumSet.class",
1017 "/modules/java.base/java/util/stream/Collector.class",
1018 "/modules/java.base/java/util/stream/Collectors$CollectorImpl.class",
1019 "/modules/java.base/java/util/function/BiConsumer.class",
1020 "/modules/java.base/java/lang/invoke/DirectMethodHandle$Interface.class",
1021 "/modules/java.base/java/lang/classfile/constantpool/InterfaceMethodRefEntry.class",
1022 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$InterfaceMethodRefEntryImpl.class",
1023 "/modules/java.base/java/util/function/BinaryOperator.class",
1024 "/modules/java.base/java/util/stream/ReduceOps.class",
1025 "/modules/java.base/java/util/stream/TerminalOp.class",
1026 "/modules/java.base/java/util/stream/ReduceOps$ReduceOp.class",
1027 "/modules/java.base/java/util/stream/StreamShape.class",
1028 "/modules/java.base/java/util/stream/Sink.class",
1029 "/modules/java.base/java/util/stream/TerminalSink.class",
1030 "/modules/java.base/java/util/stream/ReduceOps$AccumulatingSink.class",
1031 "/modules/java.base/java/util/stream/ReduceOps$Box.class",
1032 "/modules/java.base/java/util/HashMap$KeySpliterator.class",
1033 "/modules/java.base/java/util/function/Predicate.class",
1034 "/modules/java.base/java/util/stream/ReferencePipeline$StatelessOp.class",
1035 "/modules/java.base/java/util/stream/Sink$ChainedReference.class",
1036 "/modules/java.base/jdk/internal/module/ModuleResolution.class",
1037 "/modules/java.base/java/util/stream/FindOps.class",
1038 "/modules/java.base/java/util/stream/FindOps$FindSink.class",
1039 "/modules/java.base/java/util/stream/FindOps$FindSink$OfRef.class",
1040 "/modules/java.base/java/util/stream/FindOps$FindOp.class",
1041 "/modules/java.base/java/util/Spliterators.class",
1042 "/modules/java.base/java/util/Spliterators$IteratorSpliterator.class",
1043 "/modules/java.base/java/lang/module/Configuration.class",
1044 "/modules/java.base/java/lang/module/Resolver.class",
1045 "/modules/java.base/java/lang/ModuleLayer.class",
1046 "/modules/java.base/java/util/SequencedSet.class",
1047 "/modules/java.base/java/util/LinkedHashSet.class",
1048 "/modules/java.base/java/util/SequencedMap.class",
1049 "/modules/java.base/java/util/LinkedHashMap.class",
1050 "/modules/java.base/java/lang/module/ResolvedModule.class",
1051 "/modules/java.base/jdk/internal/module/ModuleLoaderMap$Mapper.class",
1052 "/modules/java.base/jdk/internal/loader/AbstractClassLoaderValue$Memoizer.class",
1053 "/modules/java.base/jdk/internal/module/ServicesCatalog$ServiceProvider.class",
1054 "/modules/java.base/java/util/concurrent/CopyOnWriteArrayList.class",
1055 "/modules/java.base/java/lang/ModuleLayer$Controller.class",
1056 "/modules/java.base/jdk/internal/module/ModuleBootstrap$SafeModuleFinder.class",
1057 "/modules/java.base/jdk/internal/vm/ContinuationSupport.class",
1058 "/modules/java.base/jdk/internal/vm/Continuation$Pinned.class",
1059 "/modules/java.base/sun/launcher/LauncherHelper.class",
1060 "/modules/java.base/sun/net/util/URLUtil.class",
1061 "/modules/java.base/jdk/internal/loader/URLClassPath$Loader.class",
1062 "/modules/java.base/jdk/internal/loader/URLClassPath$FileLoader.class",
1063 "/modules/java.base/jdk/internal/loader/Resource.class",
1064 "/modules/java.base/java/io/FileCleanable.class",
1065 "/modules/java.base/java/security/SecureClassLoader$CodeSourceKey.class",
1066 "/modules/java.base/java/security/PermissionCollection.class",
1067 "/modules/java.base/java/security/Permissions.class",
1068 "/modules/java.base/java/lang/NamedPackage.class",
1069 "/modules/java.base/jdk/internal/misc/MethodFinder.class",
1070 "/modules/java.base/java/lang/Readable.class",
1071 "/modules/java.base/java/nio/CharBuffer.class",
1072 "/modules/java.base/java/nio/HeapCharBuffer.class",
1073 "/modules/java.base/java/nio/charset/CoderResult.class",
1074 "/modules/java.base/java/util/IdentityHashMap$IdentityHashMapIterator.class",
1075 "/modules/java.base/java/util/IdentityHashMap$KeyIterator.class",
1076 "/modules/java.base/java/lang/Shutdown.class",
1077 "/modules/java.base/java/lang/Shutdown$Lock.class");
1078 }
|
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23 package org.openjdk.bench.jdk.internal.jrtfs;
24
25 import jdk.internal.jimage.ImageReader;
26 import jdk.internal.jimage.ImageReader.Node;
27 import jdk.internal.jimage.PreviewMode;
28 import org.openjdk.jmh.annotations.Benchmark;
29 import org.openjdk.jmh.annotations.BenchmarkMode;
30 import org.openjdk.jmh.annotations.Fork;
31 import org.openjdk.jmh.annotations.Level;
32 import org.openjdk.jmh.annotations.Measurement;
33 import org.openjdk.jmh.annotations.Mode;
34 import org.openjdk.jmh.annotations.OutputTimeUnit;
35 import org.openjdk.jmh.annotations.Param;
36 import org.openjdk.jmh.annotations.Scope;
37 import org.openjdk.jmh.annotations.Setup;
38 import org.openjdk.jmh.annotations.State;
39 import org.openjdk.jmh.annotations.TearDown;
40 import org.openjdk.jmh.annotations.Warmup;
41 import org.openjdk.jmh.infra.Blackhole;
42
43 import java.io.IOException;
44 import java.nio.file.Files;
45 import java.nio.file.Path;
46 import java.util.ArrayList;
47 import java.util.List;
48 import java.util.Map;
49 import java.util.Set;
50 import java.util.concurrent.TimeUnit;
51 import java.util.regex.Matcher;
52 import java.util.regex.Pattern;
53
54 import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
55 import static java.util.stream.Collectors.groupingBy;
56 import static java.util.stream.Collectors.mapping;
57 import static java.util.stream.Collectors.toList;
58
59 /// Benchmarks for ImageReader. See individual benchmarks for details on what they
60 /// measure, and their potential applicability for real world conclusions.
61 @BenchmarkMode(Mode.AverageTime)
62 @Warmup(iterations = 5, timeUnit = TimeUnit.MILLISECONDS)
63 @Measurement(iterations = 5, timeUnit = TimeUnit.MILLISECONDS)
64 @State(Scope.Benchmark)
65 @OutputTimeUnit(TimeUnit.MILLISECONDS)
66 @Fork(value = 1, jvmArgs = {"--add-exports", "java.base/jdk.internal.jimage=ALL-UNNAMED"})
67 public class ImageReaderBenchmark {
68
69 private static final Path SYSTEM_IMAGE_FILE = Path.of(System.getProperty("java.home"), "lib", "modules");
70 static {
71 if (!Files.exists(SYSTEM_IMAGE_FILE)) {
72 throw new IllegalStateException("Cannot locate jimage file for benchmark: " + SYSTEM_IMAGE_FILE);
73 }
74 }
75
76 /// NOT annotated with `@State` since it needs to potentially be used as a
77 /// per-trial or a per-iteration state object. The subclasses provide
78 /// any lifetime annotations that are needed.
79 static class BaseState {
80 protected Path copiedImageFile;
81 long count = 0;
82
83 public void setUp() throws IOException {
84 copiedImageFile = Files.createTempFile("copied_jimage", "");
85 Files.copy(SYSTEM_IMAGE_FILE, copiedImageFile, REPLACE_EXISTING);
86 }
87
88 public void tearDown() throws IOException {
89 Files.deleteIfExists(copiedImageFile);
90 System.err.println("Result: " + count);
91 }
92 }
93
94 /// A {@link Level#Trial per-trial} state which provides an image reader,
95 /// suitable for {@link Mode#AverageTime average time} benchmarks.
96 @State(Scope.Benchmark)
97 public static class WarmStart extends BaseState {
98 @Param({"DISABLED", "ENABLED"})
99 PreviewMode previewMode;
100 ImageReader reader;
101
102 @Setup(Level.Trial)
103 public void setUp() throws IOException {
104 super.setUp();
105 reader = ImageReader.open(copiedImageFile, previewMode);
106 }
107
108 @TearDown(Level.Trial)
109 public void tearDown() throws IOException {
110 super.tearDown();
111 }
112 }
113
114 @State(Scope.Benchmark)
115 public static class WarmStartWithCachedNodes extends WarmStart {
116 @Setup(Level.Trial)
117 public void setUp() throws IOException {
118 super.setUp();
119 countAllNodes(reader, reader.findNode("/"));
120 }
121 }
122
123 /// A {@link Level#Iteration per-iteration} state suitable for
124 /// {@link Mode#SingleShotTime single shot} benchmarks. Unlike
125 /// {@link WarmStart}, this state does not provide a reader instance.
126 @State(Scope.Benchmark)
127 public static class ColdStart extends BaseState {
128 @Param({"DISABLED", "ENABLED"})
129 PreviewMode previewMode;
130
131 @Setup(Level.Iteration)
132 public void setUp() throws IOException {
133 super.setUp();
134 }
135
136 @TearDown(Level.Iteration)
137 public void tearDown() throws IOException {
138 super.tearDown();
139 }
140 }
141
142 @State(Scope.Benchmark)
143 public static class ColdStartWithImageReader extends ColdStart {
144 ImageReader reader;
145
146 @Setup(Level.Iteration)
147 public void setup() throws IOException {
148 super.setUp();
149 reader = ImageReader.open(copiedImageFile, previewMode);
150 }
151
152 @TearDown(Level.Iteration)
153 public void tearDown() throws IOException {
154 reader.close();
155 super.tearDown();
156 }
157 }
158
159 /// Benchmarks counting of all nodes in the system image *after* they have all
160 /// been visited at least once. Image nodes should be cached after first use,
161 /// so this benchmark should be fast and very stable.
162 @Benchmark
163 @BenchmarkMode(Mode.AverageTime)
164 public void warmStart_CountAllNodes(WarmStartWithCachedNodes state) throws IOException {
165 state.count = countAllNodes(state.reader, state.reader.findNode("/"));
166 }
167
168 /// Benchmarks {@link ImageReader#containsResource(String, String)} when no
169 /// nodes have been cached in the {@link ImageReader}. In non-preview mode,
170 /// this should be identical to the case where nodes are cached (because the
171 /// cache isn't used) but in preview mode, the cache will be tested for
172 /// preview resources, and thus differ depending on whether nodes are present.
173 ///
174 /// This doesn't need to be a cold start because it never modifies the nodes
175 /// cache.
176 @Benchmark
177 @BenchmarkMode(Mode.AverageTime)
178 public void warmStart_ContainsResource_emptyNodeCache(WarmStart state) throws IOException {
179 state.count = countContainsResource(state.reader, ClassList.pathMap());
180 }
181
182 /// As above, but the nodes cache has been filled, giving preview mode a
183 /// different code path.
184 @Benchmark
185 @BenchmarkMode(Mode.AverageTime)
186 public void warmStart_ContainsResource_fullNodeCache(WarmStartWithCachedNodes state) throws IOException {
187 state.count = countContainsResource(state.reader, ClassList.pathMap());
188 }
189
190 /// As {@link #warmStart_ContainsResource_emptyNodeCache}, but tests
191 /// {@link ImageReader#findResourceNode(String, String)}.
192 @Benchmark
193 @BenchmarkMode(Mode.AverageTime)
194 public void warmStart_FindResourceNode_emptyNodeCache(WarmStart state) throws IOException {
195 state.count = countFindResourceNode(state.reader, ClassList.pathMap());
196 }
197
198 /// As {@link #warmStart_ContainsResource_fullNodeCache}, but tests
199 /// {@link ImageReader#findResourceNode(String, String)}.
200 @Benchmark
201 @BenchmarkMode(Mode.AverageTime)
202 public void warmStart_FindResourceNode_fullNodeCache(WarmStartWithCachedNodes state) throws IOException {
203 state.count = countFindResourceNode(state.reader, ClassList.pathMap());
204 }
205
206
207 /// Benchmarks counting of all nodes in the system image from a "cold start". This
208 /// visits all nodes in depth-first order and counts them.
209 ///
210 /// This benchmark is not representative of any typical usage pattern, but can be
211 /// used for comparisons between versions of `ImageReader`.
212 @Benchmark
213 @BenchmarkMode(Mode.SingleShotTime)
214 public void coldStart_InitAndCount(ColdStart state) throws IOException {
215 try (var reader = ImageReader.open(state.copiedImageFile, state.previewMode)) {
216 state.count = countAllNodes(reader, reader.findNode("/"));
217 }
218 }
219
220 /// As above, but excludes the time to initialize the `ImageReader`.
221 @Benchmark
222 @BenchmarkMode(Mode.SingleShotTime)
223 public void coldStart_CountOnly(ColdStartWithImageReader state) throws IOException {
224 state.count = countAllNodes(state.reader, state.reader.findNode("/"));
225 }
226
227 /// Benchmarks the time taken to load the byte array contents of classes
228 /// representative of those loaded by javac to for the simplest `HelloWorld`
229 /// program.
230 ///
231 /// This benchmark is somewhat representative of the cost of class loading
232 /// during javac startup. It is useful for comparisons between versions of
233 /// `ImageReader`, but also to estimate a lower bound for any reduction or
234 /// increase in the real-world startup time of javac.
235 @Benchmark
236 @BenchmarkMode(Mode.SingleShotTime)
237 public void coldStart_LoadJavacInitClasses(Blackhole bh, ColdStart state) throws IOException {
238 int errors = 0;
239 try (var reader = ImageReader.open(state.copiedImageFile, state.previewMode)) {
240 for (String path : ClassList.names()) {
241 // Path determination isn't perfect so there can be a few "misses" in here.
242 // Report the count of bad paths as the "result", which should be < 20 or so.
243 Node node = reader.findNode(path);
244 if (node != null) {
245 bh.consume(reader.getResource(node));
246 } else {
247 errors += 1;
248 }
249 }
250 }
251 state.count = ClassList.count();
252 // Allow up to 2% missing classes before complaining.
253 if ((100 * errors) / ClassList.count() >= 2) {
254 reportMissingClassesAndFail(state, errors);
255 }
256 }
257
258 static long countAllNodes(ImageReader reader, Node node) {
259 long count = 1;
260 if (node.isDirectory()) {
261 count += node.getChildNames().mapToLong(n -> {
262 try {
263 return countAllNodes(reader, reader.findNode(n));
264 } catch (IOException e) {
265 throw new RuntimeException(e);
266 }
267 }).sum();
268 }
269 return count;
270 }
271
272 static long countContainsResource(ImageReader reader, Map<String, List<String>> modToPaths)
273 throws IOException {
274 long count = 0;
275 for (Map.Entry<String, List<String>> e : modToPaths.entrySet()) {
276 String mod = e.getKey();
277 for (String path : e.getValue()) {
278 if (reader.containsResource(mod, path)) {
279 count++;
280 }
281 }
282 }
283 return count;
284 }
285
286 static long countFindResourceNode(ImageReader reader, Map<String, List<String>> modToPaths) throws IOException {
287 long count = 0;
288 for (Map.Entry<String, List<String>> e : modToPaths.entrySet()) {
289 String mod = e.getKey();
290 for (String path : e.getValue()) {
291 if (reader.findResourceNode(mod, path) != null) {
292 count++;
293 }
294 }
295 }
296 return count;
297 }
298
299 // Run if the INIT_CLASSES list below is sufficiently out-of-date.
300 // DO NOT run this before the benchmark, as it will cache all the nodes!
301 private static void reportMissingClassesAndFail(ColdStart state, int errors) throws IOException {
302 List<String> missing = new ArrayList<>(errors);
303 try (var reader = ImageReader.open(state.copiedImageFile, state.previewMode)) {
304 for (String path : ClassList.names()) {
305 if (reader.findNode(path) == null) {
306 missing.add(path);
307 }
308 }
309 }
310 throw new IllegalStateException(
311 String.format(
312 "Too many missing classes (%d of %d) in the hardcoded benchmark list.\n" +
313 "Please regenerate it according to instructions in the source code.\n" +
314 "Missing classes:\n\t%s",
315 errors, ClassList.count(), String.join("\n\t", missing)));
316 }
317
318 /// Note: This list is inherently a little fragile and may end up being more
319 /// trouble than it's worth to maintain. If it turns out that it needs to be
320 /// regenerated often when this benchmark is run, then a new approach should
321 /// be considered, such as:
322 /// * Limit the list of classes to non-internal ones.
323 /// * Calculate the list dynamically based on the running JVM.
324 /// * Build a custom jimage file similar to ImageReaderTest
325 private static final class ClassList {
326 /// Returns the names of resource nodes expected to be present in the
327 /// reader, excluding preview mode paths (i.e. "/META-INF/preview/").
328 private static Set<String> names() {
329 return INIT_CLASSES;
330 }
331
332 /// Returns the number of resources present.
333 private static int count() {
334 return INIT_CLASSES.size();
335 }
336
337 /// Returns the resource nodes represented as a map from module name to
338 /// resource path. This is suitable for testing functions like
339 /// {@link ImageReader#containsResource(String, String)} without the
340 /// overhead of splitting resource names during the trial.
341 private static Map<String, List<String>> pathMap() {
342 return MODULE_TO_PATHS;
343 }
344
345 // Created by running "java -verbose:class", throwing away anonymous inner
346 // classes and anything without a reliable name, and grouping by the stated
347 // source. It's not perfect, but it's representative.
348 //
349 // <jdk_root>/bin/java -verbose:class HelloWorld 2>&1 \
350 // | fgrep '[class,load]' | cut -d' ' -f2 \
351 // | tr '.' '/' \
352 // | egrep -v '\$[0-9$]' \
353 // | fgrep -v 'HelloWorld' \
354 // | fgrep -v '/META-INF/preview/' \
355 // | while read f ; do echo "${f}.class" ; done \
356 // > initclasses.txt
357 //
358 // Output:
359 // java/lang/Object.class
360 // java/io/Serializable.class
361 // ...
362 //
363 // jimage list <jdk_root>/images/jdk/lib/modules \
364 // | awk '/^Module: */ { MOD=$2 }; /^ */ { print "/modules/"MOD"/"$1 }' \
365 // > fullpaths.txt
366 //
367 // Output:
368 // ...
369 // /modules/java.base/java/lang/Object.class
370 // /modules/java.base/java/lang/OutOfMemoryError.class
371 // ...
372 //
373 // while read c ; do grep "/$c" fullpaths.txt ; done < initclasses.txt \
374 // | while read c ; do printf ' "%s",\n' "$c" ; done \
375 // > initpaths.txt
376 //
377 // Output:
378 private static final Set<String> INIT_CLASSES = Set.of(
379 "/modules/java.base/java/lang/Object.class",
380 "/modules/java.base/java/io/Serializable.class",
381 "/modules/java.base/java/lang/Comparable.class",
382 "/modules/java.base/java/lang/CharSequence.class",
383 "/modules/java.base/java/lang/constant/Constable.class",
384 "/modules/java.base/java/lang/constant/ConstantDesc.class",
385 "/modules/java.base/java/lang/String.class",
386 "/modules/java.base/java/lang/reflect/AnnotatedElement.class",
387 "/modules/java.base/java/lang/reflect/GenericDeclaration.class",
388 "/modules/java.base/java/lang/reflect/Type.class",
389 "/modules/java.base/java/lang/invoke/TypeDescriptor.class",
390 "/modules/java.base/java/lang/invoke/TypeDescriptor$OfField.class",
391 "/modules/java.base/java/lang/Class.class",
392 "/modules/java.base/java/lang/Cloneable.class",
393 "/modules/java.base/java/lang/ClassLoader.class",
394 "/modules/java.base/java/lang/System.class",
395 "/modules/java.base/java/lang/Throwable.class",
396 "/modules/java.base/java/lang/Error.class",
397 "/modules/java.base/java/lang/Exception.class",
398 "/modules/java.base/java/lang/RuntimeException.class",
399 "/modules/java.base/java/security/ProtectionDomain.class",
400 "/modules/java.base/java/security/SecureClassLoader.class",
401 "/modules/java.base/java/lang/ReflectiveOperationException.class",
402 "/modules/java.base/java/lang/ClassNotFoundException.class",
403 "/modules/java.base/java/lang/Record.class",
404 "/modules/java.base/java/lang/LinkageError.class",
405 "/modules/java.base/java/lang/NoClassDefFoundError.class",
406 "/modules/java.base/java/lang/ClassCastException.class",
407 "/modules/java.base/java/lang/ArrayStoreException.class",
408 "/modules/java.base/java/lang/VirtualMachineError.class",
409 "/modules/java.base/java/lang/InternalError.class",
410 "/modules/java.base/java/lang/OutOfMemoryError.class",
411 "/modules/java.base/java/lang/StackOverflowError.class",
412 "/modules/java.base/java/lang/IllegalMonitorStateException.class",
413 "/modules/java.base/java/lang/ref/Reference.class",
414 "/modules/java.base/java/lang/IllegalCallerException.class",
415 "/modules/java.base/java/lang/ref/SoftReference.class",
416 "/modules/java.base/java/lang/ref/WeakReference.class",
417 "/modules/java.base/java/lang/ref/FinalReference.class",
418 "/modules/java.base/java/lang/ref/PhantomReference.class",
419 "/modules/java.base/java/lang/ref/Finalizer.class",
420 "/modules/java.base/java/lang/Runnable.class",
421 "/modules/java.base/java/lang/Thread.class",
422 "/modules/java.base/java/lang/Thread$FieldHolder.class",
423 "/modules/java.base/java/lang/Thread$Constants.class",
424 "/modules/java.base/java/lang/Thread$UncaughtExceptionHandler.class",
425 "/modules/java.base/java/lang/ThreadGroup.class",
426 "/modules/java.base/java/lang/BaseVirtualThread.class",
427 "/modules/java.base/java/lang/VirtualThread.class",
428 "/modules/java.base/java/lang/ThreadBuilders$BoundVirtualThread.class",
429 "/modules/java.base/java/util/Map.class",
430 "/modules/java.base/java/util/Dictionary.class",
431 "/modules/java.base/java/util/Hashtable.class",
432 "/modules/java.base/java/util/Properties.class",
433 "/modules/java.base/java/lang/Module.class",
434 "/modules/java.base/java/lang/reflect/AccessibleObject.class",
435 "/modules/java.base/java/lang/reflect/Member.class",
436 "/modules/java.base/java/lang/reflect/Field.class",
437 "/modules/java.base/java/lang/reflect/Parameter.class",
438 "/modules/java.base/java/lang/reflect/Executable.class",
439 "/modules/java.base/java/lang/reflect/Method.class",
440 "/modules/java.base/java/lang/reflect/Constructor.class",
441 "/modules/java.base/jdk/internal/vm/ContinuationScope.class",
442 "/modules/java.base/jdk/internal/vm/Continuation.class",
443 "/modules/java.base/jdk/internal/vm/StackChunk.class",
444 "/modules/java.base/jdk/internal/reflect/MethodAccessor.class",
445 "/modules/java.base/jdk/internal/reflect/MethodAccessorImpl.class",
446 "/modules/java.base/jdk/internal/reflect/ConstantPool.class",
447 "/modules/java.base/java/lang/annotation/Annotation.class",
448 "/modules/java.base/jdk/internal/reflect/CallerSensitive.class",
449 "/modules/java.base/jdk/internal/reflect/ConstructorAccessor.class",
450 "/modules/java.base/jdk/internal/reflect/ConstructorAccessorImpl.class",
451 "/modules/java.base/jdk/internal/reflect/DirectConstructorHandleAccessor$NativeAccessor.class",
452 "/modules/java.base/java/lang/invoke/MethodHandle.class",
453 "/modules/java.base/java/lang/invoke/DirectMethodHandle.class",
454 "/modules/java.base/java/lang/invoke/VarHandle.class",
455 "/modules/java.base/java/lang/invoke/MemberName.class",
456 "/modules/java.base/java/lang/invoke/ResolvedMethodName.class",
457 "/modules/java.base/java/lang/invoke/MethodHandleNatives.class",
458 "/modules/java.base/java/lang/invoke/LambdaForm.class",
459 "/modules/java.base/java/lang/invoke/TypeDescriptor$OfMethod.class",
460 "/modules/java.base/java/lang/invoke/MethodType.class",
461 "/modules/java.base/java/lang/BootstrapMethodError.class",
462 "/modules/java.base/java/lang/invoke/CallSite.class",
463 "/modules/java.base/jdk/internal/foreign/abi/NativeEntryPoint.class",
464 "/modules/java.base/jdk/internal/foreign/abi/ABIDescriptor.class",
465 "/modules/java.base/jdk/internal/foreign/abi/VMStorage.class",
466 "/modules/java.base/jdk/internal/foreign/abi/UpcallLinker$CallRegs.class",
467 "/modules/java.base/java/lang/invoke/ConstantCallSite.class",
468 "/modules/java.base/java/lang/invoke/MutableCallSite.class",
469 "/modules/java.base/java/lang/invoke/VolatileCallSite.class",
470 "/modules/java.base/java/lang/AssertionStatusDirectives.class",
471 "/modules/java.base/java/lang/Appendable.class",
472 "/modules/java.base/java/lang/AbstractStringBuilder.class",
473 "/modules/java.base/java/lang/StringBuffer.class",
474 "/modules/java.base/java/lang/StringBuilder.class",
475 "/modules/java.base/jdk/internal/misc/UnsafeConstants.class",
476 "/modules/java.base/jdk/internal/misc/Unsafe.class",
477 "/modules/java.base/jdk/internal/module/Modules.class",
478 "/modules/java.base/java/lang/AutoCloseable.class",
479 "/modules/java.base/java/io/Closeable.class",
480 "/modules/java.base/java/io/InputStream.class",
481 "/modules/java.base/java/io/ByteArrayInputStream.class",
482 "/modules/java.base/java/net/URL.class",
483 "/modules/java.base/java/lang/Enum.class",
484 "/modules/java.base/java/util/jar/Manifest.class",
485 "/modules/java.base/jdk/internal/loader/BuiltinClassLoader.class",
486 "/modules/java.base/jdk/internal/loader/ClassLoaders.class",
487 "/modules/java.base/jdk/internal/loader/ClassLoaders$AppClassLoader.class",
488 "/modules/java.base/jdk/internal/loader/ClassLoaders$PlatformClassLoader.class",
489 "/modules/java.base/java/security/CodeSource.class",
490 "/modules/java.base/java/util/concurrent/ConcurrentMap.class",
491 "/modules/java.base/java/util/AbstractMap.class",
492 "/modules/java.base/java/util/concurrent/ConcurrentHashMap.class",
493 "/modules/java.base/java/lang/Iterable.class",
494 "/modules/java.base/java/util/Collection.class",
495 "/modules/java.base/java/util/SequencedCollection.class",
496 "/modules/java.base/java/util/List.class",
497 "/modules/java.base/java/util/RandomAccess.class",
498 "/modules/java.base/java/util/AbstractCollection.class",
499 "/modules/java.base/java/util/AbstractList.class",
500 "/modules/java.base/java/util/ArrayList.class",
501 "/modules/java.base/java/lang/StackTraceElement.class",
502 "/modules/java.base/java/nio/Buffer.class",
503 "/modules/java.base/java/lang/StackWalker.class",
504 "/modules/java.base/java/lang/StackStreamFactory$AbstractStackWalker.class",
505 "/modules/java.base/java/lang/StackWalker$StackFrame.class",
506 "/modules/java.base/java/lang/ClassFrameInfo.class",
507 "/modules/java.base/java/lang/StackFrameInfo.class",
508 "/modules/java.base/java/lang/LiveStackFrame.class",
509 "/modules/java.base/java/lang/LiveStackFrameInfo.class",
510 "/modules/java.base/java/util/concurrent/locks/AbstractOwnableSynchronizer.class",
511 "/modules/java.base/java/lang/Boolean.class",
512 "/modules/java.base/java/lang/Character.class",
513 "/modules/java.base/java/lang/Number.class",
514 "/modules/java.base/java/lang/Float.class",
515 "/modules/java.base/java/lang/Double.class",
516 "/modules/java.base/java/lang/Byte.class",
517 "/modules/java.base/java/lang/Short.class",
518 "/modules/java.base/java/lang/Integer.class",
519 "/modules/java.base/java/lang/Long.class",
520 "/modules/java.base/java/lang/Void.class",
521 "/modules/java.base/java/util/Iterator.class",
522 "/modules/java.base/java/lang/reflect/RecordComponent.class",
523 "/modules/java.base/jdk/internal/vm/vector/VectorSupport.class",
524 "/modules/java.base/jdk/internal/vm/vector/VectorSupport$VectorPayload.class",
525 "/modules/java.base/jdk/internal/vm/vector/VectorSupport$Vector.class",
526 "/modules/java.base/jdk/internal/vm/vector/VectorSupport$VectorMask.class",
527 "/modules/java.base/jdk/internal/vm/vector/VectorSupport$VectorShuffle.class",
528 "/modules/java.base/jdk/internal/vm/FillerObject.class",
529 "/modules/java.base/java/lang/NullPointerException.class",
530 "/modules/java.base/java/lang/ArithmeticException.class",
531 "/modules/java.base/java/lang/IndexOutOfBoundsException.class",
532 "/modules/java.base/java/lang/ArrayIndexOutOfBoundsException.class",
533 "/modules/java.base/java/io/ObjectStreamField.class",
534 "/modules/java.base/java/util/Comparator.class",
535 "/modules/java.base/java/lang/String$CaseInsensitiveComparator.class",
536 "/modules/java.base/jdk/internal/misc/VM.class",
537 "/modules/java.base/java/lang/Module$ArchivedData.class",
538 "/modules/java.base/jdk/internal/misc/CDS.class",
539 "/modules/java.base/java/util/Set.class",
540 "/modules/java.base/java/util/ImmutableCollections$AbstractImmutableCollection.class",
541 "/modules/java.base/java/util/ImmutableCollections$AbstractImmutableSet.class",
542 "/modules/java.base/java/util/ImmutableCollections$Set12.class",
543 "/modules/java.base/java/util/Objects.class",
544 "/modules/java.base/java/util/ImmutableCollections.class",
545 "/modules/java.base/java/util/ImmutableCollections$AbstractImmutableList.class",
546 "/modules/java.base/java/util/ImmutableCollections$ListN.class",
547 "/modules/java.base/java/util/ImmutableCollections$SetN.class",
548 "/modules/java.base/java/util/ImmutableCollections$AbstractImmutableMap.class",
549 "/modules/java.base/java/util/ImmutableCollections$MapN.class",
550 "/modules/java.base/jdk/internal/access/JavaLangReflectAccess.class",
551 "/modules/java.base/java/lang/reflect/ReflectAccess.class",
552 "/modules/java.base/jdk/internal/access/SharedSecrets.class",
553 "/modules/java.base/jdk/internal/reflect/ReflectionFactory.class",
554 "/modules/java.base/java/io/ObjectStreamClass.class",
555 "/modules/java.base/java/lang/Math.class",
556 "/modules/java.base/jdk/internal/reflect/ReflectionFactory$Config.class",
557 "/modules/java.base/jdk/internal/access/JavaLangRefAccess.class",
558 "/modules/java.base/java/lang/ref/ReferenceQueue.class",
559 "/modules/java.base/java/lang/ref/ReferenceQueue$Null.class",
560 "/modules/java.base/java/lang/ref/ReferenceQueue$Lock.class",
561 "/modules/java.base/jdk/internal/access/JavaLangAccess.class",
562 "/modules/java.base/jdk/internal/util/SystemProps.class",
563 "/modules/java.base/jdk/internal/util/SystemProps$Raw.class",
564 "/modules/java.base/java/nio/charset/Charset.class",
565 "/modules/java.base/java/nio/charset/spi/CharsetProvider.class",
566 "/modules/java.base/sun/nio/cs/StandardCharsets.class",
567 "/modules/java.base/java/lang/StringLatin1.class",
568 "/modules/java.base/sun/nio/cs/HistoricallyNamedCharset.class",
569 "/modules/java.base/sun/nio/cs/Unicode.class",
570 "/modules/java.base/sun/nio/cs/UTF_8.class",
571 "/modules/java.base/java/util/HashMap.class",
572 "/modules/java.base/java/lang/StrictMath.class",
573 "/modules/java.base/jdk/internal/util/ArraysSupport.class",
574 "/modules/java.base/java/util/Map$Entry.class",
575 "/modules/java.base/java/util/HashMap$Node.class",
576 "/modules/java.base/java/util/LinkedHashMap$Entry.class",
577 "/modules/java.base/java/util/HashMap$TreeNode.class",
578 "/modules/java.base/java/lang/StringConcatHelper.class",
579 "/modules/java.base/java/lang/VersionProps.class",
580 "/modules/java.base/java/lang/Runtime.class",
581 "/modules/java.base/java/util/concurrent/locks/Lock.class",
582 "/modules/java.base/java/util/concurrent/locks/ReentrantLock.class",
583 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$Segment.class",
584 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$CounterCell.class",
585 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$Node.class",
586 "/modules/java.base/java/util/concurrent/locks/LockSupport.class",
587 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$ReservationNode.class",
588 "/modules/java.base/java/util/AbstractSet.class",
589 "/modules/java.base/java/util/HashMap$EntrySet.class",
590 "/modules/java.base/java/util/HashMap$HashIterator.class",
591 "/modules/java.base/java/util/HashMap$EntryIterator.class",
592 "/modules/java.base/jdk/internal/util/StaticProperty.class",
593 "/modules/java.base/java/io/FileInputStream.class",
594 "/modules/java.base/java/lang/System$In.class",
595 "/modules/java.base/java/io/FileDescriptor.class",
596 "/modules/java.base/jdk/internal/access/JavaIOFileDescriptorAccess.class",
597 "/modules/java.base/java/io/Flushable.class",
598 "/modules/java.base/java/io/OutputStream.class",
599 "/modules/java.base/java/io/FileOutputStream.class",
600 "/modules/java.base/java/lang/System$Out.class",
601 "/modules/java.base/java/io/FilterInputStream.class",
602 "/modules/java.base/java/io/BufferedInputStream.class",
603 "/modules/java.base/java/io/FilterOutputStream.class",
604 "/modules/java.base/java/io/PrintStream.class",
605 "/modules/java.base/java/io/BufferedOutputStream.class",
606 "/modules/java.base/java/io/Writer.class",
607 "/modules/java.base/java/io/OutputStreamWriter.class",
608 "/modules/java.base/sun/nio/cs/StreamEncoder.class",
609 "/modules/java.base/java/nio/charset/CharsetEncoder.class",
610 "/modules/java.base/sun/nio/cs/UTF_8$Encoder.class",
611 "/modules/java.base/java/nio/charset/CodingErrorAction.class",
612 "/modules/java.base/java/util/Arrays.class",
613 "/modules/java.base/java/nio/ByteBuffer.class",
614 "/modules/java.base/jdk/internal/misc/ScopedMemoryAccess.class",
615 "/modules/java.base/java/util/function/Function.class",
616 "/modules/java.base/jdk/internal/util/Preconditions.class",
617 "/modules/java.base/java/util/function/BiFunction.class",
618 "/modules/java.base/jdk/internal/access/JavaNioAccess.class",
619 "/modules/java.base/java/nio/HeapByteBuffer.class",
620 "/modules/java.base/java/io/BufferedWriter.class",
621 "/modules/java.base/java/lang/Terminator.class",
622 "/modules/java.base/jdk/internal/misc/Signal$Handler.class",
623 "/modules/java.base/jdk/internal/misc/Signal.class",
624 "/modules/java.base/java/util/Hashtable$Entry.class",
625 "/modules/java.base/jdk/internal/misc/Signal$NativeHandler.class",
626 "/modules/java.base/java/lang/Integer$IntegerCache.class",
627 "/modules/java.base/jdk/internal/misc/OSEnvironment.class",
628 "/modules/java.base/java/lang/Thread$State.class",
629 "/modules/java.base/java/lang/ref/Reference$ReferenceHandler.class",
630 "/modules/java.base/java/lang/Thread$ThreadIdentifiers.class",
631 "/modules/java.base/java/lang/ref/Finalizer$FinalizerThread.class",
632 "/modules/java.base/jdk/internal/ref/Cleaner.class",
633 "/modules/java.base/java/util/Collections.class",
634 "/modules/java.base/java/util/Collections$EmptySet.class",
635 "/modules/java.base/java/util/Collections$EmptyList.class",
636 "/modules/java.base/java/util/Collections$EmptyMap.class",
637 "/modules/java.base/java/lang/IllegalArgumentException.class",
638 "/modules/java.base/java/lang/invoke/MethodHandleStatics.class",
639 "/modules/java.base/java/lang/reflect/ClassFileFormatVersion.class",
640 "/modules/java.base/java/lang/CharacterData.class",
641 "/modules/java.base/java/lang/CharacterDataLatin1.class",
642 "/modules/java.base/jdk/internal/util/ClassFileDumper.class",
643 "/modules/java.base/java/util/HexFormat.class",
644 "/modules/java.base/java/lang/Character$CharacterCache.class",
645 "/modules/java.base/java/util/concurrent/atomic/AtomicInteger.class",
646 "/modules/java.base/jdk/internal/module/ModuleBootstrap.class",
647 "/modules/java.base/java/lang/module/ModuleDescriptor.class",
648 "/modules/java.base/java/lang/invoke/MethodHandles.class",
649 "/modules/java.base/java/lang/invoke/MemberName$Factory.class",
650 "/modules/java.base/jdk/internal/reflect/Reflection.class",
651 "/modules/java.base/java/lang/invoke/MethodHandles$Lookup.class",
652 "/modules/java.base/java/util/ImmutableCollections$MapN$MapNIterator.class",
653 "/modules/java.base/java/util/KeyValueHolder.class",
654 "/modules/java.base/sun/invoke/util/VerifyAccess.class",
655 "/modules/java.base/java/lang/reflect/Modifier.class",
656 "/modules/java.base/jdk/internal/access/JavaLangModuleAccess.class",
657 "/modules/java.base/java/io/File.class",
658 "/modules/java.base/java/io/DefaultFileSystem.class",
659 "/modules/java.base/java/io/FileSystem.class",
660 "/modules/java.base/java/io/UnixFileSystem.class",
661 "/modules/java.base/jdk/internal/util/DecimalDigits.class",
662 "/modules/java.base/jdk/internal/module/ModulePatcher.class",
663 "/modules/java.base/jdk/internal/module/ModuleBootstrap$IllegalNativeAccess.class",
664 "/modules/java.base/java/util/HashSet.class",
665 "/modules/java.base/jdk/internal/module/ModuleLoaderMap.class",
666 "/modules/java.base/jdk/internal/module/ModuleLoaderMap$Modules.class",
667 "/modules/java.base/jdk/internal/module/ModuleBootstrap$Counters.class",
668 "/modules/java.base/jdk/internal/module/ArchivedBootLayer.class",
669 "/modules/java.base/jdk/internal/module/ArchivedModuleGraph.class",
670 "/modules/java.base/jdk/internal/module/SystemModuleFinders.class",
671 "/modules/java.base/java/net/URI.class",
672 "/modules/java.base/jdk/internal/access/JavaNetUriAccess.class",
673 "/modules/java.base/jdk/internal/module/SystemModulesMap.class",
674 "/modules/java.base/jdk/internal/module/SystemModules.class",
675 "/modules/java.base/jdk/internal/module/ExplodedSystemModules.class",
676 "/modules/java.base/java/nio/file/Watchable.class",
677 "/modules/java.base/java/nio/file/Path.class",
678 "/modules/java.base/java/nio/file/FileSystems.class",
679 "/modules/java.base/sun/nio/fs/DefaultFileSystemProvider.class",
680 "/modules/java.base/java/nio/file/spi/FileSystemProvider.class",
681 "/modules/java.base/sun/nio/fs/AbstractFileSystemProvider.class",
682 "/modules/java.base/sun/nio/fs/UnixFileSystemProvider.class",
683 "/modules/java.base/sun/nio/fs/LinuxFileSystemProvider.class",
684 "/modules/java.base/java/nio/file/OpenOption.class",
685 "/modules/java.base/java/nio/file/StandardOpenOption.class",
686 "/modules/java.base/java/nio/file/FileSystem.class",
687 "/modules/java.base/sun/nio/fs/UnixFileSystem.class",
688 "/modules/java.base/sun/nio/fs/LinuxFileSystem.class",
689 "/modules/java.base/sun/nio/fs/UnixPath.class",
690 "/modules/java.base/sun/nio/fs/Util.class",
691 "/modules/java.base/java/lang/StringCoding.class",
692 "/modules/java.base/sun/nio/fs/UnixNativeDispatcher.class",
693 "/modules/java.base/jdk/internal/loader/BootLoader.class",
694 "/modules/java.base/java/lang/Module$EnableNativeAccess.class",
695 "/modules/java.base/jdk/internal/loader/NativeLibraries.class",
696 "/modules/java.base/jdk/internal/loader/ClassLoaderHelper.class",
697 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$CollectionView.class",
698 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$KeySetView.class",
699 "/modules/java.base/jdk/internal/loader/NativeLibraries$LibraryPaths.class",
700 "/modules/java.base/java/io/File$PathStatus.class",
701 "/modules/java.base/jdk/internal/loader/NativeLibraries$CountedLock.class",
702 "/modules/java.base/java/util/concurrent/locks/AbstractQueuedSynchronizer.class",
703 "/modules/java.base/java/util/concurrent/locks/ReentrantLock$Sync.class",
704 "/modules/java.base/java/util/concurrent/locks/ReentrantLock$NonfairSync.class",
705 "/modules/java.base/jdk/internal/loader/NativeLibraries$NativeLibraryContext.class",
706 "/modules/java.base/java/util/Queue.class",
707 "/modules/java.base/java/util/Deque.class",
708 "/modules/java.base/java/util/ArrayDeque.class",
709 "/modules/java.base/java/util/ArrayDeque$DeqIterator.class",
710 "/modules/java.base/jdk/internal/loader/NativeLibrary.class",
711 "/modules/java.base/jdk/internal/loader/NativeLibraries$NativeLibraryImpl.class",
712 "/modules/java.base/java/security/cert/Certificate.class",
713 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$ValuesView.class",
714 "/modules/java.base/java/util/Enumeration.class",
715 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$Traverser.class",
716 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$BaseIterator.class",
717 "/modules/java.base/java/util/concurrent/ConcurrentHashMap$ValueIterator.class",
718 "/modules/java.base/java/nio/file/attribute/BasicFileAttributes.class",
719 "/modules/java.base/java/nio/file/attribute/PosixFileAttributes.class",
720 "/modules/java.base/sun/nio/fs/UnixFileAttributes.class",
721 "/modules/java.base/sun/nio/fs/UnixFileStoreAttributes.class",
722 "/modules/java.base/sun/nio/fs/UnixMountEntry.class",
723 "/modules/java.base/java/nio/file/CopyOption.class",
724 "/modules/java.base/java/nio/file/LinkOption.class",
725 "/modules/java.base/java/nio/file/Files.class",
726 "/modules/java.base/sun/nio/fs/NativeBuffers.class",
727 "/modules/java.base/java/lang/ThreadLocal.class",
728 "/modules/java.base/jdk/internal/misc/CarrierThreadLocal.class",
729 "/modules/java.base/jdk/internal/misc/TerminatingThreadLocal.class",
730 "/modules/java.base/java/lang/ThreadLocal$ThreadLocalMap.class",
731 "/modules/java.base/java/lang/ThreadLocal$ThreadLocalMap$Entry.class",
732 "/modules/java.base/java/util/IdentityHashMap.class",
733 "/modules/java.base/java/util/Collections$SetFromMap.class",
734 "/modules/java.base/java/util/IdentityHashMap$KeySet.class",
735 "/modules/java.base/sun/nio/fs/NativeBuffer.class",
736 "/modules/java.base/jdk/internal/ref/CleanerFactory.class",
737 "/modules/java.base/java/util/concurrent/ThreadFactory.class",
738 "/modules/java.base/java/lang/ref/Cleaner.class",
739 "/modules/java.base/jdk/internal/ref/CleanerImpl.class",
740 "/modules/java.base/jdk/internal/ref/CleanerImpl$CleanableList.class",
741 "/modules/java.base/jdk/internal/ref/CleanerImpl$CleanableList$Node.class",
742 "/modules/java.base/java/lang/ref/Cleaner$Cleanable.class",
743 "/modules/java.base/jdk/internal/ref/PhantomCleanable.class",
744 "/modules/java.base/jdk/internal/ref/CleanerImpl$CleanerCleanable.class",
745 "/modules/java.base/jdk/internal/misc/InnocuousThread.class",
746 "/modules/java.base/sun/nio/fs/NativeBuffer$Deallocator.class",
747 "/modules/java.base/jdk/internal/ref/CleanerImpl$PhantomCleanableRef.class",
748 "/modules/java.base/java/lang/module/ModuleFinder.class",
749 "/modules/java.base/jdk/internal/module/ModulePath.class",
750 "/modules/java.base/java/util/jar/Attributes$Name.class",
751 "/modules/java.base/java/lang/reflect/Array.class",
752 "/modules/java.base/jdk/internal/perf/PerfCounter.class",
753 "/modules/java.base/jdk/internal/perf/Perf.class",
754 "/modules/java.base/sun/nio/ch/DirectBuffer.class",
755 "/modules/java.base/java/nio/MappedByteBuffer.class",
756 "/modules/java.base/java/nio/DirectByteBuffer.class",
757 "/modules/java.base/java/nio/Bits.class",
758 "/modules/java.base/java/util/concurrent/atomic/AtomicLong.class",
759 "/modules/java.base/jdk/internal/misc/VM$BufferPool.class",
760 "/modules/java.base/java/nio/LongBuffer.class",
761 "/modules/java.base/java/nio/DirectLongBufferU.class",
762 "/modules/java.base/java/util/zip/ZipConstants.class",
763 "/modules/java.base/java/util/zip/ZipFile.class",
764 "/modules/java.base/java/util/jar/JarFile.class",
765 "/modules/java.base/java/util/BitSet.class",
766 "/modules/java.base/jdk/internal/access/JavaUtilZipFileAccess.class",
767 "/modules/java.base/jdk/internal/access/JavaUtilJarAccess.class",
768 "/modules/java.base/java/util/jar/JavaUtilJarAccessImpl.class",
769 "/modules/java.base/java/lang/Runtime$Version.class",
770 "/modules/java.base/java/util/ImmutableCollections$List12.class",
771 "/modules/java.base/java/util/Optional.class",
772 "/modules/java.base/java/nio/file/attribute/DosFileAttributes.class",
773 "/modules/java.base/java/nio/file/attribute/AttributeView.class",
774 "/modules/java.base/java/nio/file/attribute/FileAttributeView.class",
775 "/modules/java.base/java/nio/file/attribute/BasicFileAttributeView.class",
776 "/modules/java.base/java/nio/file/attribute/DosFileAttributeView.class",
777 "/modules/java.base/java/nio/file/attribute/UserDefinedFileAttributeView.class",
778 "/modules/java.base/sun/nio/fs/UnixFileAttributeViews.class",
779 "/modules/java.base/sun/nio/fs/DynamicFileAttributeView.class",
780 "/modules/java.base/sun/nio/fs/AbstractBasicFileAttributeView.class",
781 "/modules/java.base/sun/nio/fs/UnixFileAttributeViews$Basic.class",
782 "/modules/java.base/sun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes.class",
783 "/modules/java.base/java/nio/file/DirectoryStream$Filter.class",
784 "/modules/java.base/java/nio/file/Files$AcceptAllFilter.class",
785 "/modules/java.base/java/nio/file/DirectoryStream.class",
786 "/modules/java.base/java/nio/file/SecureDirectoryStream.class",
787 "/modules/java.base/sun/nio/fs/UnixSecureDirectoryStream.class",
788 "/modules/java.base/sun/nio/fs/UnixDirectoryStream.class",
789 "/modules/java.base/java/util/concurrent/locks/ReadWriteLock.class",
790 "/modules/java.base/java/util/concurrent/locks/ReentrantReadWriteLock.class",
791 "/modules/java.base/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.class",
792 "/modules/java.base/java/util/concurrent/locks/ReentrantReadWriteLock$Sync.class",
793 "/modules/java.base/java/util/concurrent/locks/ReentrantReadWriteLock$FairSync.class",
794 "/modules/java.base/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter.class",
795 "/modules/java.base/java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock.class",
796 "/modules/java.base/java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock.class",
797 "/modules/java.base/sun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator.class",
798 "/modules/java.base/java/nio/file/attribute/FileAttribute.class",
799 "/modules/java.base/sun/nio/fs/UnixFileModeAttribute.class",
800 "/modules/java.base/sun/nio/fs/UnixChannelFactory.class",
801 "/modules/java.base/sun/nio/fs/UnixChannelFactory$Flags.class",
802 "/modules/java.base/java/util/Collections$EmptyIterator.class",
803 "/modules/java.base/java/nio/channels/Channel.class",
804 "/modules/java.base/java/nio/channels/ReadableByteChannel.class",
805 "/modules/java.base/java/nio/channels/WritableByteChannel.class",
806 "/modules/java.base/java/nio/channels/ByteChannel.class",
807 "/modules/java.base/java/nio/channels/SeekableByteChannel.class",
808 "/modules/java.base/java/nio/channels/GatheringByteChannel.class",
809 "/modules/java.base/java/nio/channels/ScatteringByteChannel.class",
810 "/modules/java.base/java/nio/channels/InterruptibleChannel.class",
811 "/modules/java.base/java/nio/channels/spi/AbstractInterruptibleChannel.class",
812 "/modules/java.base/java/nio/channels/FileChannel.class",
813 "/modules/java.base/sun/nio/ch/FileChannelImpl.class",
814 "/modules/java.base/sun/nio/ch/NativeDispatcher.class",
815 "/modules/java.base/sun/nio/ch/FileDispatcher.class",
816 "/modules/java.base/sun/nio/ch/UnixFileDispatcherImpl.class",
817 "/modules/java.base/sun/nio/ch/FileDispatcherImpl.class",
818 "/modules/java.base/sun/nio/ch/IOUtil.class",
819 "/modules/java.base/sun/nio/ch/Interruptible.class",
820 "/modules/java.base/sun/nio/ch/NativeThreadSet.class",
821 "/modules/java.base/sun/nio/ch/FileChannelImpl$Closer.class",
822 "/modules/java.base/java/nio/channels/Channels.class",
823 "/modules/java.base/sun/nio/ch/Streams.class",
824 "/modules/java.base/sun/nio/ch/SelChImpl.class",
825 "/modules/java.base/java/nio/channels/NetworkChannel.class",
826 "/modules/java.base/java/nio/channels/SelectableChannel.class",
827 "/modules/java.base/java/nio/channels/spi/AbstractSelectableChannel.class",
828 "/modules/java.base/java/nio/channels/SocketChannel.class",
829 "/modules/java.base/sun/nio/ch/SocketChannelImpl.class",
830 "/modules/java.base/sun/nio/ch/ChannelInputStream.class",
831 "/modules/java.base/java/lang/invoke/LambdaMetafactory.class",
832 "/modules/java.base/java/util/function/Supplier.class",
833 "/modules/java.base/jdk/internal/util/ReferencedKeySet.class",
834 "/modules/java.base/jdk/internal/util/ReferencedKeyMap.class",
835 "/modules/java.base/jdk/internal/util/ReferenceKey.class",
836 "/modules/java.base/jdk/internal/util/StrongReferenceKey.class",
837 "/modules/java.base/java/lang/invoke/MethodTypeForm.class",
838 "/modules/java.base/jdk/internal/util/WeakReferenceKey.class",
839 "/modules/java.base/sun/invoke/util/Wrapper.class",
840 "/modules/java.base/sun/invoke/util/Wrapper$Format.class",
841 "/modules/java.base/java/lang/constant/ConstantDescs.class",
842 "/modules/java.base/java/lang/constant/ClassDesc.class",
843 "/modules/java.base/jdk/internal/constant/ClassOrInterfaceDescImpl.class",
844 "/modules/java.base/jdk/internal/constant/ArrayClassDescImpl.class",
845 "/modules/java.base/jdk/internal/constant/ConstantUtils.class",
846 "/modules/java.base/java/lang/constant/DirectMethodHandleDesc$Kind.class",
847 "/modules/java.base/java/lang/constant/MethodTypeDesc.class",
848 "/modules/java.base/jdk/internal/constant/MethodTypeDescImpl.class",
849 "/modules/java.base/java/lang/constant/MethodHandleDesc.class",
850 "/modules/java.base/java/lang/constant/DirectMethodHandleDesc.class",
851 "/modules/java.base/jdk/internal/constant/DirectMethodHandleDescImpl.class",
852 "/modules/java.base/java/lang/constant/DynamicConstantDesc.class",
853 "/modules/java.base/jdk/internal/constant/PrimitiveClassDescImpl.class",
854 "/modules/java.base/java/lang/constant/DynamicConstantDesc$AnonymousDynamicConstantDesc.class",
855 "/modules/java.base/java/lang/invoke/LambdaForm$NamedFunction.class",
856 "/modules/java.base/java/lang/invoke/DirectMethodHandle$Holder.class",
857 "/modules/java.base/sun/invoke/util/ValueConversions.class",
858 "/modules/java.base/java/lang/invoke/MethodHandleImpl.class",
859 "/modules/java.base/java/lang/invoke/Invokers.class",
860 "/modules/java.base/java/lang/invoke/LambdaForm$Kind.class",
861 "/modules/java.base/java/lang/NoSuchMethodException.class",
862 "/modules/java.base/java/lang/invoke/LambdaForm$BasicType.class",
863 "/modules/java.base/java/lang/classfile/TypeKind.class",
864 "/modules/java.base/java/lang/invoke/LambdaForm$Name.class",
865 "/modules/java.base/java/lang/invoke/LambdaForm$Holder.class",
866 "/modules/java.base/java/lang/invoke/InvokerBytecodeGenerator.class",
867 "/modules/java.base/java/lang/classfile/AnnotationElement.class",
868 "/modules/java.base/java/lang/classfile/Annotation.class",
869 "/modules/java.base/java/lang/classfile/constantpool/ConstantPool.class",
870 "/modules/java.base/java/lang/classfile/constantpool/ConstantPoolBuilder.class",
871 "/modules/java.base/jdk/internal/classfile/impl/TemporaryConstantPool.class",
872 "/modules/java.base/java/lang/classfile/constantpool/PoolEntry.class",
873 "/modules/java.base/java/lang/classfile/constantpool/AnnotationConstantValueEntry.class",
874 "/modules/java.base/java/lang/classfile/constantpool/Utf8Entry.class",
875 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry.class",
876 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$Utf8EntryImpl.class",
877 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$Utf8EntryImpl$State.class",
878 "/modules/java.base/jdk/internal/classfile/impl/AnnotationImpl.class",
879 "/modules/java.base/java/lang/classfile/ClassFileElement.class",
880 "/modules/java.base/java/lang/classfile/Attribute.class",
881 "/modules/java.base/java/lang/classfile/ClassElement.class",
882 "/modules/java.base/java/lang/classfile/MethodElement.class",
883 "/modules/java.base/java/lang/classfile/FieldElement.class",
884 "/modules/java.base/java/lang/classfile/attribute/RuntimeVisibleAnnotationsAttribute.class",
885 "/modules/java.base/jdk/internal/classfile/impl/Util$Writable.class",
886 "/modules/java.base/jdk/internal/classfile/impl/AbstractElement.class",
887 "/modules/java.base/jdk/internal/classfile/impl/UnboundAttribute.class",
888 "/modules/java.base/jdk/internal/classfile/impl/UnboundAttribute$UnboundRuntimeVisibleAnnotationsAttribute.class",
889 "/modules/java.base/java/lang/classfile/Attributes.class",
890 "/modules/java.base/java/lang/classfile/AttributeMapper.class",
891 "/modules/java.base/jdk/internal/classfile/impl/AbstractAttributeMapper.class",
892 "/modules/java.base/jdk/internal/classfile/impl/AbstractAttributeMapper$RuntimeVisibleAnnotationsMapper.class",
893 "/modules/java.base/java/lang/classfile/AttributeMapper$AttributeStability.class",
894 "/modules/java.base/java/lang/invoke/MethodHandleImpl$Intrinsic.class",
895 "/modules/java.base/jdk/internal/classfile/impl/SplitConstantPool.class",
896 "/modules/java.base/java/lang/classfile/BootstrapMethodEntry.class",
897 "/modules/java.base/jdk/internal/classfile/impl/BootstrapMethodEntryImpl.class",
898 "/modules/java.base/jdk/internal/classfile/impl/EntryMap.class",
899 "/modules/java.base/jdk/internal/classfile/impl/Util.class",
900 "/modules/java.base/java/lang/classfile/constantpool/LoadableConstantEntry.class",
901 "/modules/java.base/java/lang/classfile/constantpool/ClassEntry.class",
902 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$AbstractRefEntry.class",
903 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$AbstractNamedEntry.class",
904 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$ClassEntryImpl.class",
905 "/modules/java.base/java/util/function/Consumer.class",
906 "/modules/java.base/java/lang/classfile/ClassFile.class",
907 "/modules/java.base/jdk/internal/classfile/impl/ClassFileImpl.class",
908 "/modules/java.base/java/lang/classfile/ClassFileBuilder.class",
909 "/modules/java.base/java/lang/classfile/ClassBuilder.class",
910 "/modules/java.base/jdk/internal/classfile/impl/AbstractDirectBuilder.class",
911 "/modules/java.base/jdk/internal/classfile/impl/DirectClassBuilder.class",
912 "/modules/java.base/jdk/internal/classfile/impl/AttributeHolder.class",
913 "/modules/java.base/java/lang/classfile/Superclass.class",
914 "/modules/java.base/jdk/internal/classfile/impl/SuperclassImpl.class",
915 "/modules/java.base/java/lang/classfile/attribute/SourceFileAttribute.class",
916 "/modules/java.base/jdk/internal/classfile/impl/UnboundAttribute$UnboundSourceFileAttribute.class",
917 "/modules/java.base/jdk/internal/classfile/impl/AbstractAttributeMapper$SourceFileMapper.class",
918 "/modules/java.base/jdk/internal/classfile/impl/BoundAttribute.class",
919 "/modules/java.base/java/lang/classfile/MethodBuilder.class",
920 "/modules/java.base/jdk/internal/classfile/impl/MethodInfo.class",
921 "/modules/java.base/jdk/internal/classfile/impl/TerminalMethodBuilder.class",
922 "/modules/java.base/jdk/internal/classfile/impl/DirectMethodBuilder.class",
923 "/modules/java.base/java/lang/classfile/constantpool/NameAndTypeEntry.class",
924 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$AbstractRefsEntry.class",
925 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$NameAndTypeEntryImpl.class",
926 "/modules/java.base/java/lang/classfile/constantpool/MemberRefEntry.class",
927 "/modules/java.base/java/lang/classfile/constantpool/FieldRefEntry.class",
928 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$AbstractMemberRefEntry.class",
929 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$FieldRefEntryImpl.class",
930 "/modules/java.base/java/lang/invoke/InvokerBytecodeGenerator$ClassData.class",
931 "/modules/java.base/java/lang/classfile/CodeBuilder.class",
932 "/modules/java.base/jdk/internal/classfile/impl/LabelContext.class",
933 "/modules/java.base/jdk/internal/classfile/impl/TerminalCodeBuilder.class",
934 "/modules/java.base/jdk/internal/classfile/impl/DirectCodeBuilder.class",
935 "/modules/java.base/java/lang/classfile/CodeElement.class",
936 "/modules/java.base/java/lang/classfile/PseudoInstruction.class",
937 "/modules/java.base/java/lang/classfile/instruction/CharacterRange.class",
938 "/modules/java.base/java/lang/classfile/instruction/LocalVariable.class",
939 "/modules/java.base/java/lang/classfile/instruction/LocalVariableType.class",
940 "/modules/java.base/jdk/internal/classfile/impl/DirectCodeBuilder$DeferredLabel.class",
941 "/modules/java.base/java/lang/classfile/BufWriter.class",
942 "/modules/java.base/jdk/internal/classfile/impl/BufWriterImpl.class",
943 "/modules/java.base/java/lang/classfile/Label.class",
944 "/modules/java.base/java/lang/classfile/instruction/LabelTarget.class",
945 "/modules/java.base/jdk/internal/classfile/impl/LabelImpl.class",
946 "/modules/java.base/sun/invoke/util/VerifyType.class",
947 "/modules/java.base/java/lang/classfile/Opcode.class",
948 "/modules/java.base/java/lang/classfile/Opcode$Kind.class",
949 "/modules/java.base/java/lang/classfile/constantpool/MethodRefEntry.class",
950 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$MethodRefEntryImpl.class",
951 "/modules/java.base/sun/invoke/empty/Empty.class",
952 "/modules/java.base/jdk/internal/classfile/impl/BytecodeHelpers.class",
953 "/modules/java.base/jdk/internal/classfile/impl/UnboundAttribute$AdHocAttribute.class",
954 "/modules/java.base/jdk/internal/classfile/impl/AbstractAttributeMapper$CodeMapper.class",
955 "/modules/java.base/java/lang/classfile/FieldBuilder.class",
956 "/modules/java.base/jdk/internal/classfile/impl/TerminalFieldBuilder.class",
957 "/modules/java.base/jdk/internal/classfile/impl/DirectFieldBuilder.class",
958 "/modules/java.base/java/lang/classfile/CustomAttribute.class",
959 "/modules/java.base/jdk/internal/classfile/impl/AnnotationReader.class",
960 "/modules/java.base/java/util/ListIterator.class",
961 "/modules/java.base/java/util/ImmutableCollections$ListItr.class",
962 "/modules/java.base/jdk/internal/classfile/impl/StackMapGenerator.class",
963 "/modules/java.base/jdk/internal/classfile/impl/StackMapGenerator$Frame.class",
964 "/modules/java.base/jdk/internal/classfile/impl/StackMapGenerator$Type.class",
965 "/modules/java.base/jdk/internal/classfile/impl/RawBytecodeHelper.class",
966 "/modules/java.base/jdk/internal/classfile/impl/RawBytecodeHelper$CodeRange.class",
967 "/modules/java.base/jdk/internal/classfile/impl/ClassHierarchyImpl.class",
968 "/modules/java.base/java/lang/classfile/ClassHierarchyResolver.class",
969 "/modules/java.base/jdk/internal/classfile/impl/ClassHierarchyImpl$ClassLoadingClassHierarchyResolver.class",
970 "/modules/java.base/jdk/internal/classfile/impl/ClassHierarchyImpl$CachedClassHierarchyResolver.class",
971 "/modules/java.base/java/lang/classfile/ClassHierarchyResolver$ClassHierarchyInfo.class",
972 "/modules/java.base/jdk/internal/classfile/impl/ClassHierarchyImpl$ClassHierarchyInfoImpl.class",
973 "/modules/java.base/java/lang/classfile/ClassReader.class",
974 "/modules/java.base/jdk/internal/classfile/impl/ClassReaderImpl.class",
975 "/modules/java.base/jdk/internal/util/ModifiedUtf.class",
976 "/modules/java.base/java/lang/invoke/MethodHandles$Lookup$ClassDefiner.class",
977 "/modules/java.base/java/lang/IncompatibleClassChangeError.class",
978 "/modules/java.base/java/lang/NoSuchMethodError.class",
979 "/modules/java.base/java/lang/invoke/BootstrapMethodInvoker.class",
980 "/modules/java.base/java/lang/invoke/AbstractValidatingLambdaMetafactory.class",
981 "/modules/java.base/java/lang/invoke/InnerClassLambdaMetafactory.class",
982 "/modules/java.base/java/lang/invoke/MethodHandleInfo.class",
983 "/modules/java.base/java/lang/invoke/InfoFromMemberName.class",
984 "/modules/java.base/java/util/ImmutableCollections$Access.class",
985 "/modules/java.base/jdk/internal/access/JavaUtilCollectionAccess.class",
986 "/modules/java.base/java/lang/classfile/Interfaces.class",
987 "/modules/java.base/jdk/internal/classfile/impl/InterfacesImpl.class",
988 "/modules/java.base/java/lang/invoke/TypeConvertingMethodAdapter.class",
989 "/modules/java.base/java/lang/invoke/DirectMethodHandle$Constructor.class",
990 "/modules/java.base/jdk/internal/access/JavaLangInvokeAccess.class",
991 "/modules/java.base/java/lang/invoke/VarHandle$AccessMode.class",
992 "/modules/java.base/java/lang/invoke/VarHandle$AccessType.class",
993 "/modules/java.base/java/lang/invoke/Invokers$Holder.class",
994 "/modules/java.base/jdk/internal/module/ModuleInfo.class",
995 "/modules/java.base/java/io/DataInput.class",
996 "/modules/java.base/java/io/DataInputStream.class",
997 "/modules/java.base/jdk/internal/module/ModuleInfo$CountingDataInput.class",
998 "/modules/java.base/sun/nio/ch/NativeThread.class",
999 "/modules/java.base/jdk/internal/misc/Blocker.class",
1000 "/modules/java.base/sun/nio/ch/Util.class",
1001 "/modules/java.base/sun/nio/ch/Util$BufferCache.class",
1002 "/modules/java.base/sun/nio/ch/IOStatus.class",
1003 "/modules/java.base/jdk/internal/util/ByteArray.class",
1004 "/modules/java.base/java/lang/invoke/VarHandles.class",
1005 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsShorts$ByteArrayViewVarHandle.class",
1006 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsShorts$ArrayHandle.class",
1007 "/modules/java.base/java/lang/invoke/VarHandleGuards.class",
1008 "/modules/java.base/java/lang/invoke/VarForm.class",
1009 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsChars$ByteArrayViewVarHandle.class",
1010 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsChars$ArrayHandle.class",
1011 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsInts$ByteArrayViewVarHandle.class",
1012 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsInts$ArrayHandle.class",
1013 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsFloats$ByteArrayViewVarHandle.class",
1014 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsFloats$ArrayHandle.class",
1015 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsLongs$ByteArrayViewVarHandle.class",
1016 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsLongs$ArrayHandle.class",
1017 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsDoubles$ByteArrayViewVarHandle.class",
1018 "/modules/java.base/java/lang/invoke/VarHandleByteArrayAsDoubles$ArrayHandle.class",
1019 "/modules/java.base/java/lang/invoke/VarHandle$AccessDescriptor.class",
1020 "/modules/java.base/jdk/internal/module/ModuleInfo$ConstantPool.class",
1021 "/modules/java.base/jdk/internal/module/ModuleInfo$ConstantPool$Entry.class",
1022 "/modules/java.base/jdk/internal/module/ModuleInfo$ConstantPool$IndexEntry.class",
1023 "/modules/java.base/java/nio/charset/StandardCharsets.class",
1024 "/modules/java.base/sun/nio/cs/US_ASCII.class",
1025 "/modules/java.base/sun/nio/cs/ISO_8859_1.class",
1026 "/modules/java.base/sun/nio/cs/UTF_16BE.class",
1027 "/modules/java.base/sun/nio/cs/UTF_16LE.class",
1028 "/modules/java.base/sun/nio/cs/UTF_16.class",
1029 "/modules/java.base/sun/nio/cs/UTF_32BE.class",
1030 "/modules/java.base/sun/nio/cs/UTF_32LE.class",
1031 "/modules/java.base/sun/nio/cs/UTF_32.class",
1032 "/modules/java.base/jdk/internal/module/ModuleInfo$ConstantPool$ValueEntry.class",
1033 "/modules/java.base/java/lang/module/ModuleDescriptor$Builder.class",
1034 "/modules/java.base/java/lang/module/ModuleDescriptor$Modifier.class",
1035 "/modules/java.base/java/lang/reflect/AccessFlag.class",
1036 "/modules/java.base/java/lang/reflect/AccessFlag$Location.class",
1037 "/modules/java.base/java/lang/module/ModuleDescriptor$Requires$Modifier.class",
1038 "/modules/java.base/java/lang/module/ModuleDescriptor$Requires.class",
1039 "/modules/java.base/java/util/HashMap$KeySet.class",
1040 "/modules/java.base/java/util/HashMap$KeyIterator.class",
1041 "/modules/java.base/jdk/internal/module/Checks.class",
1042 "/modules/java.base/java/util/ArrayList$Itr.class",
1043 "/modules/java.base/java/lang/module/ModuleDescriptor$Provides.class",
1044 "/modules/java.base/java/util/Collections$UnmodifiableCollection.class",
1045 "/modules/java.base/java/util/Collections$UnmodifiableSet.class",
1046 "/modules/java.base/java/util/HashMap$Values.class",
1047 "/modules/java.base/java/util/HashMap$ValueIterator.class",
1048 "/modules/java.base/java/util/ImmutableCollections$SetN$SetNIterator.class",
1049 "/modules/java.base/jdk/internal/module/ModuleInfo$Attributes.class",
1050 "/modules/java.base/jdk/internal/module/ModuleReferences.class",
1051 "/modules/java.base/java/lang/module/ModuleReader.class",
1052 "/modules/java.base/sun/nio/fs/UnixUriUtils.class",
1053 "/modules/java.base/java/net/URI$Parser.class",
1054 "/modules/java.base/java/lang/module/ModuleReference.class",
1055 "/modules/java.base/jdk/internal/module/ModuleReferenceImpl.class",
1056 "/modules/java.base/java/lang/module/ModuleDescriptor$Exports.class",
1057 "/modules/java.base/java/lang/module/ModuleDescriptor$Opens.class",
1058 "/modules/java.base/sun/nio/fs/UnixException.class",
1059 "/modules/java.base/java/io/IOException.class",
1060 "/modules/java.base/jdk/internal/loader/ArchivedClassLoaders.class",
1061 "/modules/java.base/jdk/internal/loader/ClassLoaders$BootClassLoader.class",
1062 "/modules/java.base/java/lang/ClassLoader$ParallelLoaders.class",
1063 "/modules/java.base/java/util/WeakHashMap.class",
1064 "/modules/java.base/java/util/WeakHashMap$Entry.class",
1065 "/modules/java.base/java/util/WeakHashMap$KeySet.class",
1066 "/modules/java.base/java/security/Principal.class",
1067 "/modules/java.base/jdk/internal/loader/URLClassPath.class",
1068 "/modules/java.base/java/net/URLStreamHandlerFactory.class",
1069 "/modules/java.base/java/net/URL$DefaultFactory.class",
1070 "/modules/java.base/jdk/internal/access/JavaNetURLAccess.class",
1071 "/modules/java.base/sun/net/www/ParseUtil.class",
1072 "/modules/java.base/java/net/URLStreamHandler.class",
1073 "/modules/java.base/sun/net/www/protocol/file/Handler.class",
1074 "/modules/java.base/sun/net/util/IPAddressUtil.class",
1075 "/modules/java.base/sun/net/util/IPAddressUtil$MASKS.class",
1076 "/modules/java.base/sun/net/www/protocol/jar/Handler.class",
1077 "/modules/java.base/jdk/internal/module/ServicesCatalog.class",
1078 "/modules/java.base/jdk/internal/loader/AbstractClassLoaderValue.class",
1079 "/modules/java.base/jdk/internal/loader/ClassLoaderValue.class",
1080 "/modules/java.base/jdk/internal/loader/BuiltinClassLoader$LoadedModule.class",
1081 "/modules/java.base/jdk/internal/module/DefaultRoots.class",
1082 "/modules/java.base/java/util/Spliterator.class",
1083 "/modules/java.base/java/util/HashMap$HashMapSpliterator.class",
1084 "/modules/java.base/java/util/HashMap$ValueSpliterator.class",
1085 "/modules/java.base/java/util/stream/StreamSupport.class",
1086 "/modules/java.base/java/util/stream/BaseStream.class",
1087 "/modules/java.base/java/util/stream/Stream.class",
1088 "/modules/java.base/java/util/stream/PipelineHelper.class",
1089 "/modules/java.base/java/util/stream/AbstractPipeline.class",
1090 "/modules/java.base/java/util/stream/ReferencePipeline.class",
1091 "/modules/java.base/java/util/stream/ReferencePipeline$Head.class",
1092 "/modules/java.base/java/util/stream/StreamOpFlag.class",
1093 "/modules/java.base/java/util/stream/StreamOpFlag$Type.class",
1094 "/modules/java.base/java/util/stream/StreamOpFlag$MaskBuilder.class",
1095 "/modules/java.base/java/util/EnumMap.class",
1096 "/modules/java.base/java/lang/Class$ReflectionData.class",
1097 "/modules/java.base/java/lang/Class$Atomic.class",
1098 "/modules/java.base/java/lang/PublicMethods$MethodList.class",
1099 "/modules/java.base/java/lang/PublicMethods$Key.class",
1100 "/modules/java.base/sun/reflect/annotation/AnnotationParser.class",
1101 "/modules/java.base/jdk/internal/reflect/MethodHandleAccessorFactory.class",
1102 "/modules/java.base/jdk/internal/reflect/MethodHandleAccessorFactory$LazyStaticHolder.class",
1103 "/modules/java.base/java/lang/invoke/BoundMethodHandle.class",
1104 "/modules/java.base/java/lang/invoke/ClassSpecializer.class",
1105 "/modules/java.base/java/lang/invoke/BoundMethodHandle$Specializer.class",
1106 "/modules/java.base/jdk/internal/vm/annotation/Stable.class",
1107 "/modules/java.base/java/lang/invoke/ClassSpecializer$SpeciesData.class",
1108 "/modules/java.base/java/lang/invoke/BoundMethodHandle$SpeciesData.class",
1109 "/modules/java.base/java/lang/invoke/ClassSpecializer$Factory.class",
1110 "/modules/java.base/java/lang/invoke/BoundMethodHandle$Specializer$Factory.class",
1111 "/modules/java.base/java/lang/invoke/SimpleMethodHandle.class",
1112 "/modules/java.base/java/lang/NoSuchFieldException.class",
1113 "/modules/java.base/java/lang/invoke/BoundMethodHandle$Species_L.class",
1114 "/modules/java.base/java/lang/invoke/DirectMethodHandle$Accessor.class",
1115 "/modules/java.base/java/lang/invoke/DelegatingMethodHandle.class",
1116 "/modules/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class",
1117 "/modules/java.base/java/lang/invoke/LambdaFormEditor.class",
1118 "/modules/java.base/java/lang/invoke/LambdaFormEditor$TransformKey.class",
1119 "/modules/java.base/java/lang/invoke/LambdaFormBuffer.class",
1120 "/modules/java.base/java/lang/invoke/LambdaFormEditor$Transform.class",
1121 "/modules/java.base/jdk/internal/reflect/DirectMethodHandleAccessor.class",
1122 "/modules/java.base/java/util/stream/Collectors.class",
1123 "/modules/java.base/java/util/stream/Collector$Characteristics.class",
1124 "/modules/java.base/java/util/EnumSet.class",
1125 "/modules/java.base/java/util/RegularEnumSet.class",
1126 "/modules/java.base/java/util/stream/Collector.class",
1127 "/modules/java.base/java/util/stream/Collectors$CollectorImpl.class",
1128 "/modules/java.base/java/util/function/BiConsumer.class",
1129 "/modules/java.base/java/lang/invoke/DirectMethodHandle$Interface.class",
1130 "/modules/java.base/java/lang/classfile/constantpool/InterfaceMethodRefEntry.class",
1131 "/modules/java.base/jdk/internal/classfile/impl/AbstractPoolEntry$InterfaceMethodRefEntryImpl.class",
1132 "/modules/java.base/java/util/function/BinaryOperator.class",
1133 "/modules/java.base/java/util/stream/ReduceOps.class",
1134 "/modules/java.base/java/util/stream/TerminalOp.class",
1135 "/modules/java.base/java/util/stream/ReduceOps$ReduceOp.class",
1136 "/modules/java.base/java/util/stream/StreamShape.class",
1137 "/modules/java.base/java/util/stream/Sink.class",
1138 "/modules/java.base/java/util/stream/TerminalSink.class",
1139 "/modules/java.base/java/util/stream/ReduceOps$AccumulatingSink.class",
1140 "/modules/java.base/java/util/stream/ReduceOps$Box.class",
1141 "/modules/java.base/java/util/HashMap$KeySpliterator.class",
1142 "/modules/java.base/java/util/function/Predicate.class",
1143 "/modules/java.base/java/util/stream/ReferencePipeline$StatelessOp.class",
1144 "/modules/java.base/java/util/stream/Sink$ChainedReference.class",
1145 "/modules/java.base/jdk/internal/module/ModuleResolution.class",
1146 "/modules/java.base/java/util/stream/FindOps.class",
1147 "/modules/java.base/java/util/stream/FindOps$FindSink.class",
1148 "/modules/java.base/java/util/stream/FindOps$FindSink$OfRef.class",
1149 "/modules/java.base/java/util/stream/FindOps$FindOp.class",
1150 "/modules/java.base/java/util/Spliterators.class",
1151 "/modules/java.base/java/util/Spliterators$IteratorSpliterator.class",
1152 "/modules/java.base/java/lang/module/Configuration.class",
1153 "/modules/java.base/java/lang/module/Resolver.class",
1154 "/modules/java.base/java/lang/ModuleLayer.class",
1155 "/modules/java.base/java/util/SequencedSet.class",
1156 "/modules/java.base/java/util/LinkedHashSet.class",
1157 "/modules/java.base/java/util/SequencedMap.class",
1158 "/modules/java.base/java/util/LinkedHashMap.class",
1159 "/modules/java.base/java/lang/module/ResolvedModule.class",
1160 "/modules/java.base/jdk/internal/module/ModuleLoaderMap$Mapper.class",
1161 "/modules/java.base/jdk/internal/loader/AbstractClassLoaderValue$Memoizer.class",
1162 "/modules/java.base/jdk/internal/module/ServicesCatalog$ServiceProvider.class",
1163 "/modules/java.base/java/util/concurrent/CopyOnWriteArrayList.class",
1164 "/modules/java.base/java/lang/ModuleLayer$Controller.class",
1165 "/modules/java.base/jdk/internal/module/ModuleBootstrap$SafeModuleFinder.class",
1166 "/modules/java.base/jdk/internal/vm/ContinuationSupport.class",
1167 "/modules/java.base/jdk/internal/vm/Continuation$Pinned.class",
1168 "/modules/java.base/sun/launcher/LauncherHelper.class",
1169 "/modules/java.base/sun/net/util/URLUtil.class",
1170 "/modules/java.base/jdk/internal/loader/URLClassPath$Loader.class",
1171 "/modules/java.base/jdk/internal/loader/URLClassPath$FileLoader.class",
1172 "/modules/java.base/jdk/internal/loader/Resource.class",
1173 "/modules/java.base/java/io/FileCleanable.class",
1174 "/modules/java.base/java/security/SecureClassLoader$CodeSourceKey.class",
1175 "/modules/java.base/java/security/PermissionCollection.class",
1176 "/modules/java.base/java/security/Permissions.class",
1177 "/modules/java.base/java/lang/NamedPackage.class",
1178 "/modules/java.base/jdk/internal/misc/MethodFinder.class",
1179 "/modules/java.base/java/lang/Readable.class",
1180 "/modules/java.base/java/nio/CharBuffer.class",
1181 "/modules/java.base/java/nio/HeapCharBuffer.class",
1182 "/modules/java.base/java/nio/charset/CoderResult.class",
1183 "/modules/java.base/java/util/IdentityHashMap$IdentityHashMapIterator.class",
1184 "/modules/java.base/java/util/IdentityHashMap$KeyIterator.class",
1185 "/modules/java.base/java/lang/Shutdown.class",
1186 "/modules/java.base/java/lang/Shutdown$Lock.class");
1187
1188 private static final Pattern SPLIT_MODULE_AND_PATH = Pattern.compile("/modules/([^/]+)/(.*)");
1189
1190 private static final Map<String, List<String>> MODULE_TO_PATHS = INIT_CLASSES.stream()
1191 .map(name -> {
1192 Matcher m = SPLIT_MODULE_AND_PATH.matcher(name);
1193 if (!m.matches()) {
1194 throw new IllegalArgumentException("Bad resource name: " + name);
1195 }
1196 return m.toMatchResult();
1197 })
1198 .collect(groupingBy(m -> m.group(1), mapping(m -> m.group(2), toList())));
1199 }
1200 }
|