src/hotspot/share/services/attachListener.cpp
changeset 50217 843fc56f4686
parent 49902 3661f31c6df4
child 50785 d1b24f2ceca5
--- a/src/hotspot/share/services/attachListener.cpp	Fri May 18 15:35:32 2018 +0200
+++ b/src/hotspot/share/services/attachListener.cpp	Fri May 18 09:15:08 2018 -0700
@@ -409,16 +409,6 @@
 // Starts the Attach Listener thread
 void AttachListener::init() {
   EXCEPTION_MARK;
-  Klass* k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_Thread(), true, THREAD);
-  if (has_init_error(THREAD)) {
-    return;
-  }
-
-  InstanceKlass* klass = InstanceKlass::cast(k);
-  instanceHandle thread_oop = klass->allocate_instance_handle(THREAD);
-  if (has_init_error(THREAD)) {
-    return;
-  }
 
   const char thread_name[] = "Attach Listener";
   Handle string = java_lang_String::create_from_str(thread_name, THREAD);
@@ -428,26 +418,23 @@
 
   // Initialize thread_oop to put it into the system threadGroup
   Handle thread_group (THREAD, Universe::system_thread_group());
-  JavaValue result(T_VOID);
-  JavaCalls::call_special(&result, thread_oop,
-                       klass,
-                       vmSymbols::object_initializer_name(),
+  Handle thread_oop = JavaCalls::construct_new_instance(SystemDictionary::Thread_klass(),
                        vmSymbols::threadgroup_string_void_signature(),
                        thread_group,
                        string,
                        THREAD);
-
   if (has_init_error(THREAD)) {
     return;
   }
 
   Klass* group = SystemDictionary::ThreadGroup_klass();
+  JavaValue result(T_VOID);
   JavaCalls::call_special(&result,
                         thread_group,
                         group,
                         vmSymbols::add_method_name(),
                         vmSymbols::thread_void_signature(),
-                        thread_oop,             // ARG 1
+                        thread_oop,
                         THREAD);
   if (has_init_error(THREAD)) {
     return;