1.1 --- a/src/share/vm/runtime/thread.cpp Tue Mar 24 12:19:47 2009 -0700 1.2 +++ b/src/share/vm/runtime/thread.cpp Tue Mar 24 21:56:53 2009 -0400 1.3 @@ -3007,17 +3007,19 @@ 1.4 } 1.5 1.6 if (UseStringCache) { 1.7 - // Forcibly initialize java/lang/String and mutate the private 1.8 + // Forcibly initialize java/lang/StringValue and mutate the private 1.9 // static final "stringCacheEnabled" field before we start creating instances 1.10 - klassOop k_o = SystemDictionary::resolve_or_null(vmSymbolHandles::java_lang_String(), Handle(), Handle(), CHECK_0); 1.11 - KlassHandle k = KlassHandle(THREAD, k_o); 1.12 - guarantee(k.not_null(), "Must find java/lang/String"); 1.13 - instanceKlassHandle ik = instanceKlassHandle(THREAD, k()); 1.14 - ik->initialize(CHECK_0); 1.15 - fieldDescriptor fd; 1.16 - // Possible we might not find this field; if so, don't break 1.17 - if (ik->find_local_field(vmSymbols::stringCacheEnabled_name(), vmSymbols::bool_signature(), &fd)) { 1.18 - k()->bool_field_put(fd.offset(), true); 1.19 + klassOop k_o = SystemDictionary::resolve_or_null(vmSymbolHandles::java_lang_StringValue(), Handle(), Handle(), CHECK_0); 1.20 + // Possible that StringValue isn't present: if so, silently don't break 1.21 + if (k_o != NULL) { 1.22 + KlassHandle k = KlassHandle(THREAD, k_o); 1.23 + instanceKlassHandle ik = instanceKlassHandle(THREAD, k()); 1.24 + ik->initialize(CHECK_0); 1.25 + fieldDescriptor fd; 1.26 + // Possible we might not find this field: if so, silently don't break 1.27 + if (ik->find_local_field(vmSymbols::stringCacheEnabled_name(), vmSymbols::bool_signature(), &fd)) { 1.28 + k()->bool_field_put(fd.offset(), true); 1.29 + } 1.30 } 1.31 } 1.32 }