RFR: 8265137: java.util.Random suddenly has new public methods nowhere documented [v6]

Uwe Schindler uschindler at openjdk.java.net
Fri Apr 23 13:57:33 UTC 2021

On Wed, 21 Apr 2021 13:13:16 GMT, Jim Laskey <jlaskey at openjdk.org> wrote:

>> Move makeXXXSpilterator from public (@hidden) to protected. No API ch
> Jim Laskey has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains eight additional commits since the last revision:
>  - Merge branch 'master' into 8265137
>  - Remove @hidden
>  - Correct the hierarchy of Random
>  - Remove extraneous references to makeXXXSpliterator
>  - Move makeXXXSpliterator methods to RandomSupport
>  - change static final from 'proxy' to 'PROXY'
>  - Make makeXXXSpliterator final
>  - Move makeXXXSpilterator from public (@hidden) to protected. No API change.

the overall setup is mch better than before! This also makes the problem we have seen in https://github.com/policeman-tools/forbidden-apis/issues/177 go away, because Random/ThreadLocalRandom no longer extend a public, but internal/hidden class (forbiddenapis is a classfile analyzer that tries to prevent user's from extending internal JDK APIs in one of its checks). When looking into superclasses of Random, it detected a "bad superclass from an internal package".

So this alone makes me very happy with this.

In addition, it no longer changes APIs of Random/ThreadLocalRandom, only the new interface is added.

+1 to merge


Marked as reviewed by uschindler (Author).

PR: https://git.openjdk.java.net/jdk/pull/3469

More information about the core-libs-dev mailing list