--- old/src/hotspot/share/prims/jvmtiThreadState.hpp 2017-09-25 13:09:45.100997142 -0400 +++ new/src/hotspot/share/prims/jvmtiThreadState.hpp 2017-09-25 13:09:44.673958407 -0400 @@ -418,14 +418,16 @@ JvmtiThreadState *state) : _state(state), _scratch_class(scratch_class) { _state->set_class_versions_map(the_class, scratch_class); - _scratch_mirror = Handle(Thread::current(), _scratch_class->java_mirror()); - _scratch_class->set_java_mirror(the_class->java_mirror()); + Thread* thread = Thread::current(); + _scratch_mirror = Handle(thread, _scratch_class->java_mirror()); + Handle the_mirror(thread, the_class->java_mirror()); + _scratch_class->set_java_mirror(the_mirror); } ~RedefineVerifyMark() { // Restore the scratch class's mirror, so when scratch_class is removed // the correct mirror pointing to it can be cleared. - _scratch_class->set_java_mirror(_scratch_mirror()); + _scratch_class->set_java_mirror(_scratch_mirror); _state->clear_class_versions_map(); } };