RFR(S): 8192936: RI does not follow the JVMTI RedefineClasses spec that is too strict in the definition

serguei.spitsyn at oracle.com serguei.spitsyn at oracle.com
Tue Apr 23 09:28:27 UTC 2019


Hi David,

Thank you a lot for review!
All suggestions are good. I'll file new bug to cover them.

Thanks,
Serguei


On 4/22/19 17:44, David Holmes wrote:
> Hi Serguei,
>
> A belated LGTM - sorry I didn't get to this sooner.
>
> Three minor comments:
>
> 1. I would have suggested to add "(Deprecated)" to the description of 
> the new flag in globals.hpp
>
> 2. The new flag should have been added to the deprecated VM options 
> tests.
>
> 3. The new test should run in both a positive and negative mode so 
> that it also checks that the new flag works.
>
> Thanks for taking care of this - it has been a hard slog. :)
>
> David
> -----
>
> On 16/04/2019 7:40 pm, serguei.spitsyn at oracle.com wrote:
>> Please, review the fix of:
>> https://bugs.openjdk.java.net/browse/JDK-8192936
>>
>>
>> Webrev (fix from Coleen):
>> http://cr.openjdk.java.net/~sspitsyn/webrevs/2019/8192936-redef-add-delete.1/ 
>>
>>
>> I've already reviewed and updated the webrev with my suggestions.
>>
>>
>> Reviewed and approved CSR:
>> https://bugs.openjdk.java.net/browse/JDK-8221528
>>
>>
>> Summary:
>>    The fix introduces new VM option 
>> -XX:AllowRedefinitionToAddOrDeleteMethods
>>    for compatibility with previous releases.New option enables old 
>> behavior
>>    and allows the JVM TI RedefineClasses and RetransformClasses to 
>> add/delete
>>    private static and private final instance methods in the new class 
>> versions.
>>    Without this option the old behavior is disabled.
>>
>>    New option is deprecated right away.
>>    The plan is to keep this option for several releases to allow 
>> customers
>>    (tool vendors) to remove dependency on old behavior from their tools.
>>
>>
>> Testing:
>>    Added new test to verify that class redefinitions which add or 
>> delete methods
>>    return expected JVMTI error codes:
>> test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/TestAddDeleteMethods.java 
>>
>>
>>    Several jvmti, com/sun/jdi and java/lang/instrument tests which 
>> need old behavior are updated to use new flag.
>>
>>    Run locally on Linux-x64 the following test suites in release and 
>> fastdebug mode:
>> - open/test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/
>>      - vmTestbase_nsk_jvmti
>>      - vmTestbase_nsk_jdi
>>      - vmTestbase_nsk_jdb
>>      - vmTestbase_nsk_jdwp
>>      - jdk_jdi
>>      - jdk_instrument
>>
>>    Submission of corresponding mach5 jobs is in progress.
>>
>> Thanks,
>> Serguei
>>



More information about the serviceability-dev mailing list