comparison src/share/vm/runtime/thread.cpp @ 382:e4355b352b7d

6719149: Wrong "java/lang/String should not be loaded yet" assertion in fastdebug bits with UseStringCache Summary: Assertion is invalid because java.lang.String may be initialized just before this assertion. Reviewed-by: phh
author coleenp
date Fri, 26 Sep 2008 13:33:15 -0400
parents b33eef719520
children 99dd4bbd9eec
comparison
equal deleted inserted replaced
335:e91159f921a5 382:e4355b352b7d
2962 } 2962 }
2963 2963
2964 if (UseStringCache) { 2964 if (UseStringCache) {
2965 // Forcibly initialize java/lang/String and mutate the private 2965 // Forcibly initialize java/lang/String and mutate the private
2966 // static final "stringCacheEnabled" field before we start creating instances 2966 // static final "stringCacheEnabled" field before we start creating instances
2967 #ifdef ASSERT
2968 klassOop tmp_k = SystemDictionary::find(vmSymbolHandles::java_lang_String(), Handle(), Handle(), CHECK_0);
2969 assert(tmp_k == NULL, "java/lang/String should not be loaded yet");
2970 #endif
2971 klassOop k_o = SystemDictionary::resolve_or_null(vmSymbolHandles::java_lang_String(), Handle(), Handle(), CHECK_0); 2967 klassOop k_o = SystemDictionary::resolve_or_null(vmSymbolHandles::java_lang_String(), Handle(), Handle(), CHECK_0);
2972 KlassHandle k = KlassHandle(THREAD, k_o); 2968 KlassHandle k = KlassHandle(THREAD, k_o);
2973 guarantee(k.not_null(), "Must find java/lang/String"); 2969 guarantee(k.not_null(), "Must find java/lang/String");
2974 instanceKlassHandle ik = instanceKlassHandle(THREAD, k()); 2970 instanceKlassHandle ik = instanceKlassHandle(THREAD, k());
2975 ik->initialize(CHECK_0); 2971 ik->initialize(CHECK_0);