--- old/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2014-02-12 15:23:57.146008416 +0100 +++ new/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2014-02-12 15:23:57.074008413 +0100 @@ -306,7 +306,7 @@ ClassLoaderDataGraph::clear_claimed_marks(); sh->process_strong_roots(true, // activate StrongRootsScope - SharedHeap::SO_AllClasses | SharedHeap::SO_AllCodeCache, + SharedHeap::SO_AllClasses | SharedHeap::SO_Strings | SharedHeap::SO_AllCodeCache, &GenMarkSweep::adjust_pointer_closure, &GenMarkSweep::adjust_klass_closure); --- old/src/share/vm/memory/genMarkSweep.cpp 2014-02-12 15:23:57.690008438 +0100 +++ new/src/share/vm/memory/genMarkSweep.cpp 2014-02-12 15:23:57.594008434 +0100 @@ -294,7 +294,7 @@ gch->gen_process_strong_roots(level, false, // Younger gens are not roots. true, // activate StrongRootsScope - SharedHeap::SO_AllClasses | SharedHeap::SO_AllCodeCache, + SharedHeap::SO_AllClasses | SharedHeap::SO_Strings | SharedHeap::SO_AllCodeCache, &adjust_pointer_closure, &adjust_pointer_closure, &adjust_klass_closure); --- old/src/share/vm/memory/sharedHeap.cpp 2014-02-12 15:23:58.254008462 +0100 +++ new/src/share/vm/memory/sharedHeap.cpp 2014-02-12 15:23:58.154008458 +0100 @@ -237,8 +237,6 @@ void SharedHeap::process_weak_roots(OopClosure* root_closure) { // Global (weak) JNI handles JNIHandles::weak_oops_do(&always_true, root_closure); - - StringTable::oops_do(root_closure); } void SharedHeap::set_barrier_set(BarrierSet* bs) { --- old/src/share/vm/memory/sharedHeap.hpp 2014-02-12 15:23:58.714008481 +0100 +++ new/src/share/vm/memory/sharedHeap.hpp 2014-02-12 15:23:58.618008477 +0100 @@ -240,8 +240,7 @@ OopClosure* roots, KlassClosure* klass_closure); - // Apply "root_closure" to all the weak roots of the system. - // These include JNI weak roots and string table. + // Apply "root_closure" to the JNI weak roots.. void process_weak_roots(OopClosure* root_closure); // The functions below are helper functions that a subclass of