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