1.1 --- a/src/share/vm/memory/sharedHeap.cpp Fri May 31 10:27:12 2013 +0100 1.2 +++ b/src/share/vm/memory/sharedHeap.cpp Mon Jun 17 11:17:49 2013 +0100 1.3 @@ -45,6 +45,7 @@ 1.4 SH_PS_FlatProfiler_oops_do, 1.5 SH_PS_Management_oops_do, 1.6 SH_PS_SystemDictionary_oops_do, 1.7 + SH_PS_ClassLoaderDataGraph_oops_do, 1.8 SH_PS_jvmti_oops_do, 1.9 SH_PS_StringTable_oops_do, 1.10 SH_PS_CodeCache_oops_do, 1.11 @@ -173,12 +174,18 @@ 1.12 if (!_process_strong_tasks->is_task_claimed(SH_PS_SystemDictionary_oops_do)) { 1.13 if (so & SO_AllClasses) { 1.14 SystemDictionary::oops_do(roots); 1.15 + } else if (so & SO_SystemClasses) { 1.16 + SystemDictionary::always_strong_oops_do(roots); 1.17 + } else { 1.18 + fatal("We should always have selected either SO_AllClasses or SO_SystemClasses"); 1.19 + } 1.20 + } 1.21 + 1.22 + if (!_process_strong_tasks->is_task_claimed(SH_PS_ClassLoaderDataGraph_oops_do)) { 1.23 + if (so & SO_AllClasses) { 1.24 ClassLoaderDataGraph::oops_do(roots, klass_closure, !is_scavenging); 1.25 } else if (so & SO_SystemClasses) { 1.26 - SystemDictionary::always_strong_oops_do(roots); 1.27 ClassLoaderDataGraph::always_strong_oops_do(roots, klass_closure, !is_scavenging); 1.28 - } else { 1.29 - fatal("We should always have selected either SO_AllClasses or SO_SystemClasses"); 1.30 } 1.31 } 1.32