RFR: 8309819: Clarify API note in Class::getName and MethodType::toMethodDescriptorString [v6]

Chen Liang liach at openjdk.org
Thu Jun 22 00:50:42 UTC 2023


> The API specification for descriptorString not being a strict inverse of Class::forName and MethodType::fromDescriptorString are not entirely correct.
> 
> 1. Class::descriptorString was never an inverse of Class::forName, which takes a binary name instead. Class::getName was a partial inverse instead.
> 2. MethodType::toMethodDescriptorString ends with a meaningless sentence: "fromMethodDescriptorString, because the latter requires a suitable class loader argument.", and the "Note:" section can be replaced with an `@apiNote`.
> 3. Both of these didn't mention hidden classes (or other non-nominally-describable classes) as a reason that prevents the inversion operation, in addition to distinct classloaders.
> 
> A few user-defined anchor links are replaced with updated javadoc link tag format as well. The explicit html-style links in `@see` tags are unchanged in order to retain the non-code output.
> 
> The rendered specifications:
> https://cr.openjdk.org/~liach/8309819/04/java.base/java/lang/Class.html
> https://cr.openjdk.org/~liach/8309819/04/java.base/java/lang/invoke/MethodType.html

Chen Liang 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 ten additional commits since the last revision:

 - Review and updates for 8310242
 - Merge branch 'master' into fix/descstring-spec
 - Update the note for getName
 - Convert the note in fromDescriptorString to apiNote
 - Address the other two review comments
 - Merge branch 'fix/descstring-spec' of https://github.com/liachmodded/jdk into fix/descstring-spec
 - Update src/java.base/share/classes/java/lang/Class.java
   
   Co-authored-by: Mandy Chung <mandy.chung at oracle.com>
 - Merge branch 'master' into fix/descstring-spec
 - 8309819: Fix specification about descriptor inverses in Class and MethodTypeDesc

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/14411/files
  - new: https://git.openjdk.org/jdk/pull/14411/files/ff26c099..bf17845e

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=14411&range=05
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=14411&range=04-05

  Stats: 15010 lines in 685 files changed: 8365 ins; 3131 del; 3514 mod
  Patch: https://git.openjdk.org/jdk/pull/14411.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/14411/head:pull/14411

PR: https://git.openjdk.org/jdk/pull/14411


More information about the core-libs-dev mailing list