RFR: 8330005: RandomGeneratorFactory.getDefault() throws exception when the runtime image only has java.base module [v2]

Alan Bateman alanb at openjdk.org
Thu Apr 25 12:18:31 UTC 2024


On Wed, 24 Apr 2024 15:27:23 GMT, Raffaello Giulietti <rgiulietti at openjdk.org> wrote:

>> Move all random generators mandated in package `java.util.random` and currently implemented in module `jdk.random` to module `java.base`, and remove module `jdk.random`.
>
> Raffaello Giulietti has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Renamed package jdk.random to jdk.internal.random.

I wish I could remember, or find the JBS issue or PR with the discussion, to remind us as to why the implementations were put into a separate module in the first place.

The changes in the PR looks okay. I'm just wondering if we also need to re-examine the wording in RandomGeneratorFactory methods where it documents  "uses the service provider API". I'm surprised this is documented as an implementation requirement. Also "service provider API" should really be ServiceLoader API.

One other thing is that we'll need a release note for this change. It's possible there are scripts somewhere in the wild that use jlink and specify the jdk.random module in the sets of modules to include. These scrips will break with this change. I don't think it's worth leaving a hollowed out module in its place but we should at least document that it has been removed.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/18932#issuecomment-2077043094


More information about the core-libs-dev mailing list