RFR: 8248862: Implement Enhanced Pseudo-Random Number Generators [v3]
Rémi Forax
github.com+828220+forax at openjdk.java.net
Wed Nov 25 14:04:02 UTC 2020
On Wed, 25 Nov 2020 13:09:03 GMT, Jim Laskey <jlaskey at openjdk.org> wrote:
>> This PR is to introduce a new random number API for the JDK. The primary API is found in RandomGenerator and RandomGeneratorFactory. Further description can be found in the JEP https://openjdk.java.net/jeps/356 .
>>
>> javadoc can be found at http://cr.openjdk.java.net/~jlaskey/prng/doc/api/java.base/java/util/random/package-summary.html
>>
>> old PR: https://github.com/openjdk/jdk/pull/1273
>
> Jim Laskey has updated the pull request incrementally with one additional commit since the last revision:
>
> 8248862: Implement Enhanced Pseudo-Random Number Generators
>
> Changes to RandomGeneratorFactory requested by @PaulSandoz
src/java.base/share/classes/java/util/random/RandomGeneratorFactory.java line 235:
> 233: throws IllegalArgumentException {
> 234: Map<String, Provider<? extends RandomGenerator>> fm = getFactoryMap();
> 235: Provider<? extends RandomGenerator> provider = fm.get(name.toUpperCase());
again use of toUpperCase() instead of toUpperCase(Locale)
src/java.base/share/classes/java/util/random/RandomGeneratorFactory.java line 250:
> 248: * @return Stream of matching Providers.
> 249: */
> 250: static <T extends RandomGenerator> Stream<RandomGeneratorFactory<T>> all(Class<? extends RandomGenerator> category) {
this signature is weird, T is not used in the parameter, so in case return any type of Stream<RandomGeneratorFactory<T>> from a type POV, should it be
` <T extends RandomGenerator> Stream<RandomGeneratorFactory<T>> all(Class<? extends T> category)` instead ?
src/java.base/share/classes/java/util/random/RandomGeneratorFactory.java line 269:
> 267: * @throws IllegalArgumentException when either the name or category is null
> 268: */
> 269: static <T> T of(String name, Class<? extends RandomGenerator> category)
Same issue as above, T is not used as a constraint
src/java.base/share/classes/java/util/random/RandomGeneratorFactory.java line 288:
> 286: * @throws IllegalArgumentException when either the name or category is null
> 287: */
> 288: static <T extends RandomGenerator> RandomGeneratorFactory<T> factoryOf(String name, Class<? extends RandomGenerator> category)
Same as above
src/java.base/share/classes/java/util/random/RandomGeneratorFactory.java line 300:
> 298: */
> 299: @SuppressWarnings("unchecked")
> 300: private void getConstructors(Class<? extends RandomGenerator> randomGeneratorClass) {
method name get but do side effects
-------------
PR: https://git.openjdk.java.net/jdk/pull/1292
More information about the security-dev
mailing list