--- old/src/share/vm/gc/g1/g1MarkSweep.cpp 2017-06-01 20:40:56.190614369 -0700 +++ new/src/share/vm/gc/g1/g1MarkSweep.cpp 2017-06-01 20:40:56.074614825 -0700 @@ -48,6 +48,7 @@ #include "runtime/atomic.hpp" #include "runtime/biasedLocking.hpp" #include "runtime/fprofiler.hpp" +#include "runtime/heapMonitoring.hpp" #include "runtime/synchronizer.hpp" #include "runtime/thread.hpp" #include "runtime/vmThread.hpp" @@ -250,6 +251,7 @@ // Now adjust pointers in remaining weak roots. (All of which should // have been cleared if they pointed to non-surviving objects.) JNIHandles::weak_oops_do(&GenMarkSweep::adjust_pointer_closure); + HeapMonitoring::do_weak_oops(&GenMarkSweep::adjust_pointer_closure); if (G1StringDedup::is_enabled()) { G1StringDedup::oops_do(&GenMarkSweep::adjust_pointer_closure);