RFC: 8223915: JVMTI Spec: can_redefine_any_class capability spec is inconsistent

David Holmes david.holmes at oracle.com
Thu May 16 12:33:19 UTC 2019


On 16/05/2019 7:47 pm, serguei.spitsyn at oracle.com wrote:
> On 5/16/19 02:25, David Holmes wrote:
>> Hi Serguei,
>>
>> On 16/05/2019 5:22 pm, serguei.spitsyn at oracle.com wrote:
>>> **Note #2*
>>>
>>> Just realized there is an incorrectness in current spec of this 
>>> capability an_redefine_any_class.
>>>
>>> This section
>>> https://docs.oracle.com/en/java/javase/11/docs/specs/jvmti.html#jvmtiCapabilities.can_redefine_any_class 
>>>
>>>
>>> tells:
>>>   "Can modify (retransform or redefine) any modifiable class."
>>>
>>> It is just wrong. Instead, it should tell:
>>>   "Can modify (retransform or redefine) any class except primitive, 
>>> array,
>>>    and some implementation defined classes."
>>
>> But that's what it does say by saying "any modifiable class".
> 
> I understand your confusion as I have it as well. :)
> 
> The problem is that in the IsModifiableClass spec the affect of 
> capability is explained as:
>    "If possessed then all classes (except primitive, array, and some 
> implementation
>     defined classes) are modifiable (redefine or retransform)."
> 
> So that successful possession of this capability makes all classes
> (except primitive, etc.) to be modifiable.

Yes and so:

"Can modify (retransform or redefine) any modifiable class."

means

"Can modify (retransform or redefine) any class (except primitive, etc)."

I'm not seeing the problem. ??

David

> Thanks,
> Serguei
> 
> 
>> David
>> -----
>>
>>> In another place it is defined as:
>>>   "If possessed then all classes (except primitive, array, and some 
>>> implementation
>>>    defined classes) are modifiable (redefine or retransform). "
>>>
>>> For reference, see the section "Optional Features" here:
>>> https://docs.oracle.com/en/java/javase/11/docs/specs/jvmti.html#IsModifiableClass 
>>>
>>>
>>> I'll update the CSR to fix this issue.
>>>
>>> Thanks,
>>> Serguei
>>>
>>>>
>>>> -Alan
>>>
> 


More information about the serviceability-dev mailing list