15 RFR(XS): 8165276: Spec states that invoke the premain method in an agent class if it's public but implementation differs
David Holmes
david.holmes at oracle.com
Wed Jun 24 12:25:51 UTC 2020
On 24/06/2020 8:14 pm, Alan Bateman wrote:
> On 24/06/2020 10:57, David Holmes wrote:
>>
>> But you are ignoring my next statement. If we remove the
>> setAccessible(true) then the premain method will not be accessible as
>> Serguei reported.
>>
>> Exception in thread "main" java.lang.IllegalAccessException: class
>> sun.instrument.InstrumentationImpl
>> (in module java.instrument) cannot access a member of class
>> SimpleAgent with modifiers "public static"
>>
>> I feel we are talking past each other on this issue with regards to
>> the IllegalAcessError that comes from the module system.
> This is nothing to do with the module system. If you drop the
> setAccessible(true) from JDK 6 or JDK 8 then you'll also get
> IllegalAccessException when the member is not accessible.
Ah! The test class SimpleAgent is what is not public. That seems a bug
in the test.
Sorry for the confusion.
David
-----
> I think the main thing that needs to be agreed here is whether to fix
> the bug or change the spec. My view is that fixing the bug should be low
> risk because (a) I've never seen an agent with a non-public premain
> method, and (b) Agents typically have to update or release frequently
> because of updates to the class file version. So yes, it would be a
> behavioral compatibility issue taht requires CSR approval and requires
> follow-up release notes to document the change.
>
> -Alan
More information about the serviceability-dev
mailing list