Mercurial > hg > graal-compiler
comparison src/share/vm/runtime/thread.cpp @ 6921:a1b8cf9cf970
8002078: hs_err_pid file should report full JDK version string
Reviewed-by: dholmes, sspitsyn, kmo
author | sla |
---|---|
date | Thu, 01 Nov 2012 13:05:47 +0100 |
parents | 716c64bda5ba |
children | c284cf4781f0 6cb0d32b828b |
comparison
equal
deleted
inserted
replaced
6920:845129b692f6 | 6921:a1b8cf9cf970 |
---|---|
1040 JavaCalls::call_static(&result, klass, vmSymbols::initializeSystemClass_name(), | 1040 JavaCalls::call_static(&result, klass, vmSymbols::initializeSystemClass_name(), |
1041 vmSymbols::void_method_signature(), CHECK); | 1041 vmSymbols::void_method_signature(), CHECK); |
1042 } | 1042 } |
1043 | 1043 |
1044 char java_runtime_name[128] = ""; | 1044 char java_runtime_name[128] = ""; |
1045 char java_runtime_version[128] = ""; | |
1045 | 1046 |
1046 // extract the JRE name from sun.misc.Version.java_runtime_name | 1047 // extract the JRE name from sun.misc.Version.java_runtime_name |
1047 static const char* get_java_runtime_name(TRAPS) { | 1048 static const char* get_java_runtime_name(TRAPS) { |
1048 Klass* k = SystemDictionary::find(vmSymbols::sun_misc_Version(), | 1049 Klass* k = SystemDictionary::find(vmSymbols::sun_misc_Version(), |
1049 Handle(), Handle(), CHECK_AND_CLEAR_NULL); | 1050 Handle(), Handle(), CHECK_AND_CLEAR_NULL); |
1056 if (name_oop == NULL) | 1057 if (name_oop == NULL) |
1057 return NULL; | 1058 return NULL; |
1058 const char* name = java_lang_String::as_utf8_string(name_oop, | 1059 const char* name = java_lang_String::as_utf8_string(name_oop, |
1059 java_runtime_name, | 1060 java_runtime_name, |
1060 sizeof(java_runtime_name)); | 1061 sizeof(java_runtime_name)); |
1062 return name; | |
1063 } else { | |
1064 return NULL; | |
1065 } | |
1066 } | |
1067 | |
1068 // extract the JRE version from sun.misc.Version.java_runtime_version | |
1069 static const char* get_java_runtime_version(TRAPS) { | |
1070 Klass* k = SystemDictionary::find(vmSymbols::sun_misc_Version(), | |
1071 Handle(), Handle(), CHECK_AND_CLEAR_NULL); | |
1072 fieldDescriptor fd; | |
1073 bool found = k != NULL && | |
1074 InstanceKlass::cast(k)->find_local_field(vmSymbols::java_runtime_version_name(), | |
1075 vmSymbols::string_signature(), &fd); | |
1076 if (found) { | |
1077 oop name_oop = k->java_mirror()->obj_field(fd.offset()); | |
1078 if (name_oop == NULL) | |
1079 return NULL; | |
1080 const char* name = java_lang_String::as_utf8_string(name_oop, | |
1081 java_runtime_version, | |
1082 sizeof(java_runtime_version)); | |
1061 return name; | 1083 return name; |
1062 } else { | 1084 } else { |
1063 return NULL; | 1085 return NULL; |
1064 } | 1086 } |
1065 } | 1087 } |
3471 initialize_class(vmSymbols::java_lang_Class(), CHECK_0); | 3493 initialize_class(vmSymbols::java_lang_Class(), CHECK_0); |
3472 call_initializeSystemClass(CHECK_0); | 3494 call_initializeSystemClass(CHECK_0); |
3473 | 3495 |
3474 // get the Java runtime name after java.lang.System is initialized | 3496 // get the Java runtime name after java.lang.System is initialized |
3475 JDK_Version::set_runtime_name(get_java_runtime_name(THREAD)); | 3497 JDK_Version::set_runtime_name(get_java_runtime_name(THREAD)); |
3498 JDK_Version::set_runtime_version(get_java_runtime_version(THREAD)); | |
3476 } else { | 3499 } else { |
3477 warning("java.lang.System not initialized"); | 3500 warning("java.lang.System not initialized"); |
3478 } | 3501 } |
3479 | 3502 |
3480 // an instance of OutOfMemory exception has been allocated earlier | 3503 // an instance of OutOfMemory exception has been allocated earlier |