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 ------------- Commit messages: - removed the test Changes: https://git.openjdk.org/jdk/pull/10318/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10318&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8285383 Stats: 735 lines in 8 files changed: 0 ins; 735 del; 0 mod Patch: https://git.openjdk.org/jdk/pull/10318.diff Fetch: git fetch https://git.openjdk.org/jdk pull/10318/head:pull/10318 PR: https://git.openjdk.org/jdk/pull/10318