diff --git a/openjdk-boot/hotspot/src/share/vm/runtime/thread.cpp b/openjdk-boot/hotspot/src/share/vm/runtime/thread.cpp index 8b7059c8389f..67e9e7bd4bce 100644 --- a/openjdk-boot/hotspot/src/share/vm/runtime/thread.cpp +++ b/openjdk-boot/hotspot/src/share/vm/runtime/thread.cpp @@ -764,10 +764,13 @@ bool Thread::claim_oops_do_par_case(int strong_roots_parity) { } void Thread::oops_do(OopClosure* f, CodeBlobClosure* cf) { - active_handles()->oops_do(f); + if (f && active_handles()) + active_handles()->oops_do(f); // Do oop for ThreadShadow - f->do_oop((oop*)&_pending_exception); - handle_area()->oops_do(f); + if (f) + f->do_oop((oop*)&_pending_exception); + if (f && handle_area()) + handle_area()->oops_do(f); } void Thread::nmethods_do(CodeBlobClosure* cf) { diff --git a/openjdk/hotspot/src/share/vm/runtime/thread.cpp b/openjdk/hotspot/src/share/vm/runtime/thread.cpp index 8b7059c8389f..67e9e7bd4bce 100644 --- a/openjdk/hotspot/src/share/vm/runtime/thread.cpp +++ b/openjdk/hotspot/src/share/vm/runtime/thread.cpp @@ -764,10 +764,13 @@ bool Thread::claim_oops_do_par_case(int strong_roots_parity) { } void Thread::oops_do(OopClosure* f, CodeBlobClosure* cf) { - active_handles()->oops_do(f); + if (f && active_handles()) + active_handles()->oops_do(f); // Do oop for ThreadShadow - f->do_oop((oop*)&_pending_exception); - handle_area()->oops_do(f); + if (f) + f->do_oop((oop*)&_pending_exception); + if (f && handle_area()) + handle_area()->oops_do(f); } void Thread::nmethods_do(CodeBlobClosure* cf) {