Merge
This commit is contained in:
commit
a44e4f2067
hotspot
agent/src/share/classes/sun/jvm/hotspot/oops
src/share/vm
@ -219,7 +219,7 @@ public class OopUtilities implements /* imports */ JVMTIThreadState {
|
||||
if (threadNameField == null) {
|
||||
SystemDictionary sysDict = VM.getVM().getSystemDictionary();
|
||||
InstanceKlass k = sysDict.getThreadKlass();
|
||||
threadNameField = (OopField) k.findField("name", "[C");
|
||||
threadNameField = (OopField) k.findField("name", "Ljava/lang/String;");
|
||||
threadGroupField = (OopField) k.findField("group", "Ljava/lang/ThreadGroup;");
|
||||
threadEETopField = (LongField) k.findField("eetop", "J");
|
||||
threadTIDField = (LongField) k.findField("tid", "J");
|
||||
@ -258,7 +258,7 @@ public class OopUtilities implements /* imports */ JVMTIThreadState {
|
||||
|
||||
public static String threadOopGetName(Oop threadOop) {
|
||||
initThreadFields();
|
||||
return charArrayToString((TypeArray) threadNameField.getValue(threadOop));
|
||||
return stringOopToString(threadNameField.getValue(threadOop));
|
||||
}
|
||||
|
||||
/** May return null if, e.g., thread was not started */
|
||||
|
@ -944,7 +944,7 @@ void java_lang_Thread::compute_offsets() {
|
||||
assert(_group_offset == 0, "offsets should be initialized only once");
|
||||
|
||||
Klass* k = SystemDictionary::Thread_klass();
|
||||
compute_offset(_name_offset, k, vmSymbols::name_name(), vmSymbols::char_array_signature());
|
||||
compute_offset(_name_offset, k, vmSymbols::name_name(), vmSymbols::string_signature());
|
||||
compute_offset(_group_offset, k, vmSymbols::group_name(), vmSymbols::threadgroup_signature());
|
||||
compute_offset(_contextClassLoader_offset, k, vmSymbols::contextClassLoader_name(), vmSymbols::classloader_signature());
|
||||
compute_offset(_inheritedAccessControlContext_offset, k, vmSymbols::inheritedAccessControlContext_name(), vmSymbols::accesscontrolcontext_signature());
|
||||
@ -974,15 +974,12 @@ void java_lang_Thread::set_thread(oop java_thread, JavaThread* thread) {
|
||||
}
|
||||
|
||||
|
||||
typeArrayOop java_lang_Thread::name(oop java_thread) {
|
||||
oop name = java_thread->obj_field(_name_offset);
|
||||
assert(name == NULL || (name->is_typeArray() && TypeArrayKlass::cast(name->klass())->element_type() == T_CHAR), "just checking");
|
||||
return typeArrayOop(name);
|
||||
oop java_lang_Thread::name(oop java_thread) {
|
||||
return java_thread->obj_field(_name_offset);
|
||||
}
|
||||
|
||||
|
||||
void java_lang_Thread::set_name(oop java_thread, typeArrayOop name) {
|
||||
assert(java_thread->obj_field(_name_offset) == NULL, "name should be NULL");
|
||||
void java_lang_Thread::set_name(oop java_thread, oop name) {
|
||||
java_thread->obj_field_put(_name_offset, name);
|
||||
}
|
||||
|
||||
|
@ -345,8 +345,8 @@ class java_lang_Thread : AllStatic {
|
||||
// Set JavaThread for instance
|
||||
static void set_thread(oop java_thread, JavaThread* thread);
|
||||
// Name
|
||||
static typeArrayOop name(oop java_thread);
|
||||
static void set_name(oop java_thread, typeArrayOop name);
|
||||
static oop name(oop java_thread);
|
||||
static void set_name(oop java_thread, oop name);
|
||||
// Priority
|
||||
static ThreadPriority priority(oop java_thread);
|
||||
static void set_priority(oop java_thread, ThreadPriority priority);
|
||||
|
@ -942,7 +942,7 @@ JvmtiEnv::GetThreadInfo(jthread thread, jvmtiThreadInfo* info_ptr) {
|
||||
return JVMTI_ERROR_INVALID_THREAD;
|
||||
|
||||
Handle thread_obj(current_thread, thread_oop);
|
||||
typeArrayHandle name;
|
||||
Handle name;
|
||||
ThreadPriority priority;
|
||||
Handle thread_group;
|
||||
Handle context_class_loader;
|
||||
@ -950,7 +950,7 @@ JvmtiEnv::GetThreadInfo(jthread thread, jvmtiThreadInfo* info_ptr) {
|
||||
|
||||
{ MutexLocker mu(Threads_lock);
|
||||
|
||||
name = typeArrayHandle(current_thread, java_lang_Thread::name(thread_obj()));
|
||||
name = Handle(current_thread, java_lang_Thread::name(thread_obj()));
|
||||
priority = java_lang_Thread::priority(thread_obj());
|
||||
thread_group = Handle(current_thread, java_lang_Thread::threadGroup(thread_obj()));
|
||||
is_daemon = java_lang_Thread::is_daemon(thread_obj());
|
||||
@ -961,7 +961,7 @@ JvmtiEnv::GetThreadInfo(jthread thread, jvmtiThreadInfo* info_ptr) {
|
||||
{ const char *n;
|
||||
|
||||
if (name() != NULL) {
|
||||
n = UNICODE::as_utf8((jchar*) name->base(T_CHAR), name->length());
|
||||
n = java_lang_String::as_utf8_string(name());
|
||||
} else {
|
||||
n = UNICODE::as_utf8(NULL, 0);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -266,11 +266,11 @@ const char *JvmtiTrace::safe_get_thread_name(Thread *thread) {
|
||||
if (threadObj == NULL) {
|
||||
return "NULL";
|
||||
}
|
||||
typeArrayOop name = java_lang_Thread::name(threadObj);
|
||||
oop name = java_lang_Thread::name(threadObj);
|
||||
if (name == NULL) {
|
||||
return "<NOT FILLED IN>";
|
||||
}
|
||||
return UNICODE::as_utf8((jchar*) name->base(T_CHAR), name->length());
|
||||
return java_lang_String::as_utf8_string(name);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2827,14 +2827,12 @@ const char* JavaThread::get_thread_name_string(char* buf, int buflen) const {
|
||||
const char* name_str;
|
||||
oop thread_obj = threadObj();
|
||||
if (thread_obj != NULL) {
|
||||
typeArrayOop name = java_lang_Thread::name(thread_obj);
|
||||
oop name = java_lang_Thread::name(thread_obj);
|
||||
if (name != NULL) {
|
||||
if (buf == NULL) {
|
||||
name_str = UNICODE::as_utf8((jchar*) name->base(T_CHAR),
|
||||
name->length());
|
||||
name_str = java_lang_String::as_utf8_string(name);
|
||||
} else {
|
||||
name_str = UNICODE::as_utf8((jchar*) name->base(T_CHAR),
|
||||
name->length(), buf, buflen);
|
||||
name_str = java_lang_String::as_utf8_string(name, buf, buflen);
|
||||
}
|
||||
} else if (is_attaching_via_jni()) { // workaround for 6412693 - see 6404306
|
||||
name_str = "<no-name - thread is attaching>";
|
||||
|
Loading…
x
Reference in New Issue
Block a user