On Fri, 16 Sep 2022 23:24:29 GMT, Alex Menkov <amen...@openjdk.org> wrote:

> The fix deletes bad test.
> 
> Background:
> The test does not work as described in the test summary.
> It supposed to redefine test class from 
> ClassLoad/ClassFileLoadHook/ClassPrepare/ClassFileLoadHook callbacks and then 
> suspend the thread and do PopFrame, but actually it does a single 
> redefinition from ClassPrepare. Redefinition from ClassLoad never happens, 
> redefinition from ClassFileLoadHook is commented out.
> 
> Actually the scenario is not good at all.
> ClassLoad, ClassPrepare and ClassFileLoadHook events are wrong places to 
> redefine classes.
> When we redefine a class and try to redefine it again from ClassLoad we 
> actually cannot redefine it. 2nd (3rd, etc.) redefinition should complete 
> before the 1st one, and 2nd version of the class becomes obsolete immediately.
> ClassFileLoadHook can be used to replace class bytes, but it should return 
> new class bytes via parameters instead of calling redefineClasses.
> Testing for PopFrame does not add any value. With the scenario all 
> redefinition happen before the test object is created, so this PopFrame has 
> nothing to do with class redefinition.
> Class redefinition when some methods of the class are executed is covered by 
> other tests from vmTestbase/nsk/jvmti/scenarios/hotswap

This pull request has now been integrated.

Changeset: 21008cad
Author:    Alex Menkov <amen...@openjdk.org>
URL:       
https://git.openjdk.org/jdk/commit/21008cad46d53a34715037d1ec1ca53a43a549db
Stats:     735 lines in 8 files changed: 0 ins; 735 del; 0 mod

8285383: vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t001/hs204t001.java 
failed with "exit code: 96"

Reviewed-by: dcubed, lmesnik, sspitsyn

-------------

PR: https://git.openjdk.org/jdk/pull/10318

Reply via email to