On 16/05/2019 7:47 pm, [email protected] wrote:
On 5/16/19 02:25, David Holmes wrote:
Hi Serguei,

On 16/05/2019 5:22 pm, [email protected] 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


Reply via email to