8046018: JVMTI Spec: can_redefine_any_class capability spec is inconsistent
Summary: Make the "can_redefine_any_class" capability spec clear and consistent
Reviewed-by: alanb, cjplummer, dholmes, dcubed, jcbeyler
--- a/src/hotspot/share/prims/jvmti.xml Sat May 25 08:30:53 2019 +0800
+++ b/src/hotspot/share/prims/jvmti.xml Fri May 24 21:05:19 2019 -0700
@@ -7437,7 +7437,7 @@
<capabilities>
<capability id="can_redefine_any_class">
If possessed then all classes (except primitive, array, and some implementation defined
- classes) are modifiable (redefine or retransform).
+ classes) are modifiable with <functionlink id="RedefineClasses"/>.
</capability>
<capability id="can_retransform_any_class">
If possessed then all classes (except primitive, array, and some implementation defined
@@ -10199,8 +10199,10 @@
</capabilityfield>
<capabilityfield id="can_redefine_any_class">
<description>
- Can modify (retransform or redefine) any modifiable class.
+ <functionlink id="RedefineClasses"/> can be called on any modifiable class.
See <functionlink id="IsModifiableClass"/>.
+ (<fieldlink id="can_redefine_classes" struct="jvmtiCapabilities"/>
+ must also be set)
</description>
</capabilityfield>
<capabilityfield id="can_get_current_thread_cpu_time">
@@ -14957,6 +14959,12 @@
- Add new error JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_ATTRIBUTE_CHANGED
that can be returned by RedefineClasses and RetransformClasses.
</change>
+ <change date="20 May 2019" version="13.0.0">
+ Minor spec update for the capability "can_redefine_any_class".
+ It now says:
+ "RedefineClasses can be called on any modifiable class. See IsModifiableClass.
+ (can_redefine_classes must also be set)"
+ </change>
</changehistory>
</specification>