RFR: 8291586: Broken links in JVMTI specification

Alan Bateman alanb at openjdk.org
Sat Sep 3 06:05:38 UTC 2022


On Sat, 3 Sep 2022 00:52:56 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:

> The Loom related spec of the extension VirtualThreadMount and VirtualThreadUnmount events in the jvmti.xml is surrounded by the elements `<elide> ... </elide>`, so these specs have to be ignored when the `jvmti.html `is generated. However the `jvmti.xsl` which does the XSL transformation misses to do that when the description of the JVM TI capabilities is collected.
> 
> The fix is a one-liner:
> 
> diff --git a/src/hotspot/share/prims/jvmti.xsl b/src/hotspot/share/prims/jvmti.xsl
> index 5ef89f91daf..d54d2a371e6 100644
> --- a/src/hotspot/share/prims/jvmti.xsl
> +++ b/src/hotspot/share/prims/jvmti.xsl
> @@ -1172,7 +1172,7 @@ typedef struct {
>      </tr>
>      <xsl:for-each select="//capabilityfield">
>        <xsl:variable name="capa" select="@id"/>
> -      <xsl:variable name="events" select="//event[capabilities/required/@id=$capa]"/>
> +      <xsl:variable name="events" select="//event[capabilities/required/@id=$capa and not(ancestor::elide)]"/>
>        <xsl:if test="count($events)">
>          <tr>
>            <th scope="row">
> 
> 
> The correctness verification both the generated `jvmti.html` and `jvmti.h` was checked.
> TBD: mach5 sanity builds and `nsk.jvmti` tests runs.

`not(ancestor::elide)` looks right. Looks good.

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

Marked as reviewed by alanb (Reviewer).

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


More information about the hotspot-dev mailing list