8046018: JVMTI Spec: can_redefine_any_class capability spec is inconsistent
authorsspitsyn
Fri, 24 May 2019 21:05:19 -0700
changeset 55041 18f94e911c55
parent 55040 0627b8ad33c1
child 55042 6264783438f6
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
src/hotspot/share/prims/jvmti.xml
--- 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>