mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
8330005: RandomGeneratorFactory.getDefault() throws exception when the runtime image only has java.base module
Reviewed-by: jpai, alanb
This commit is contained in:
parent
2baacfc169
commit
7f299043a9
14 changed files with 38 additions and 104 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2022, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -142,8 +142,9 @@ public final class RandomGeneratorFactory<T extends RandomGenerator> {
|
|||
* @return Map of RandomGeneratorFactory classes.
|
||||
*/
|
||||
private static Map<String, Provider<? extends RandomGenerator>> createFactoryMap() {
|
||||
FactoryMapHolder.class.getModule().addUses(RandomGenerator.class);
|
||||
return ServiceLoader
|
||||
.load(RandomGenerator.class)
|
||||
.load(RandomGenerator.class, ClassLoader.getPlatformClassLoader())
|
||||
.stream()
|
||||
.filter(p -> !p.type().isInterface())
|
||||
.collect(Collectors.toMap(p -> p.type().getSimpleName(), Function.identity()));
|
||||
|
@ -341,9 +342,6 @@ public final class RandomGeneratorFactory<T extends RandomGenerator> {
|
|||
* {@link RandomGenerator} that utilize the {@code name}
|
||||
* <a href="package-summary.html#algorithms">algorithm</a>.
|
||||
*
|
||||
* @implSpec Availability is determined by RandomGeneratorFactory using the
|
||||
* service provider API to locate implementations of the RandomGenerator interface.
|
||||
*
|
||||
* @param name Name of random number generator
|
||||
* <a href="package-summary.html#algorithms">algorithm</a>
|
||||
* @param <T> Sub-interface of {@link RandomGenerator} to produce
|
||||
|
@ -376,12 +374,9 @@ public final class RandomGeneratorFactory<T extends RandomGenerator> {
|
|||
|
||||
/**
|
||||
* Returns a non-empty stream of available {@link RandomGeneratorFactory RandomGeneratorFactory(s)}.
|
||||
*
|
||||
* <p>
|
||||
* RandomGenerators that are marked as deprecated are not included in the result.
|
||||
*
|
||||
* @implSpec Availability is determined by RandomGeneratorFactory using the service provider API
|
||||
* to locate implementations of the RandomGenerator interface.
|
||||
*
|
||||
* @return a non-empty stream of all available {@link RandomGeneratorFactory RandomGeneratorFactory(s)}.
|
||||
*/
|
||||
public static Stream<RandomGeneratorFactory<RandomGenerator>> all() {
|
||||
|
@ -615,5 +610,3 @@ public final class RandomGeneratorFactory<T extends RandomGenerator> {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -50,9 +50,7 @@
|
|||
* <p> The principal supporting class is {@link RandomGeneratorFactory}. This
|
||||
* can be used to generate multiple random number generators for a specific
|
||||
* algorithm. {@link RandomGeneratorFactory} also provides methods for
|
||||
* selecting random number generator algorithms. RandomGeneratorFactory
|
||||
* registers implementations of {@link RandomGenerator} interface using the
|
||||
* service provider API.
|
||||
* selecting random number generator algorithms.
|
||||
*
|
||||
* <p> An important subsidiary interface is
|
||||
* {@link RandomGenerator.StreamableGenerator}, which provides methods for
|
||||
|
@ -636,4 +634,3 @@
|
|||
* @since 17
|
||||
*/
|
||||
package java.util.random;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue