On 17/05/2019 2:40 am, [email protected] wrote:
Hi David,


On 5/16/19 05:33, David Holmes wrote:
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. ??


The problem is that this statement is confusing:
   "Can modify (retransform or redefine) any modifiable class."

It is because possessing the capability makes ALL the classes (except primitive, array, ...) modifiable. Which means that there can be non-modifiable classes other than primitive, array, and some implementation defined classes."

Again I don't see any issue. All classes except primitive, array, ... are potentially modifiable but you need the actual capability to be able to modify them.

David
-----

Thanks,
Serguei


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