src/share/vm/runtime/thread.cpp

changeset 1104
eca19a8425b5
parent 876
da9cb4e97a5f
child 1137
b9fba36710f2
     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      }

mercurial