RFR: 8343239: Javadoc marks non-preview type as preview if it's the subtype of a preview type

Nizar Benalla nbenalla at openjdk.org
Fri Nov 22 14:36:39 UTC 2024


On Thu, 14 Nov 2024 23:40:37 GMT, Nizar Benalla <nbenalla at openjdk.org> wrote:

> Please review this patch to improve the javadoc preview header. The parent bug include more details.
> 
> This is meant to prevent a bug where, if a non preview class extend an `@PreviewFeature` interface, the Javadoc displays `Programs can only use <<Type>> when preview features are enabled` when the API can be used without enable preview features as long as we don't refer to any methods in the supertype
> 
> This is specifically the case in  #17543. Here is the javadoc output [AsymmetricKey](https://cr.openjdk.org/~nbenalla/GeneratedDocs/8343239-2/docs/api/java.base/java/security/AsymmetricKey.html) after merging this branch with the PR `298420: PEM API: Implementation (Preview) #17543`. The only files affected by this change are the class `DEREncodable` and it's Subinterfaces.
> 
> One other bug I noticed is that, on the `DEREncodable` page, it's direct subinterfaces had the superscript `PREVIEW` link. I've added a condition to remove it.

AFAICT [this case](https://github.com/openjdk/jdk/blob/9769ee86978584a65703712c1a845fe4f5fffe29/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java#L2520-L2542) is not handled by any test, removing this block only broke `test/langtools/jdk/javadoc/tool/CheckResourceKeys.java` which is a more general check doesn't directly check if the output is correct for custom code. (I checked manually and the output is the same after my changes if custom classes extend a `@PreviewFeature` class)

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

PR Comment: https://git.openjdk.org/jdk/pull/22126#issuecomment-2493897634


More information about the javadoc-dev mailing list