diff --git a/hotspot/src/share/vm/runtime/reflection.cpp b/hotspot/src/share/vm/runtime/reflection.cpp index a5f7379357..305d9485c2 100644 --- a/hotspot/src/share/vm/runtime/reflection.cpp +++ b/hotspot/src/share/vm/runtime/reflection.cpp @@ -867,17 +867,16 @@ oop Reflection::new_field(fieldDescriptor* fd, bool intern_name, TRAPS) { oop Reflection::new_parameter(Handle method, int index, Symbol* sym, int flags, TRAPS) { - Handle name; - // A null symbol here translates to the empty string + Handle rh = java_lang_reflect_Parameter::create(CHECK_NULL); + if(NULL != sym) { - name = java_lang_String::create_from_symbol(sym, CHECK_NULL); + Handle name = java_lang_String::create_from_symbol(sym, CHECK_NULL); + java_lang_reflect_Parameter::set_name(rh(), name()); } else { - name = java_lang_String::create_from_str("", CHECK_NULL); + java_lang_reflect_Parameter::set_name(rh(), NULL); } - Handle rh = java_lang_reflect_Parameter::create(CHECK_NULL); - java_lang_reflect_Parameter::set_name(rh(), name()); java_lang_reflect_Parameter::set_modifiers(rh(), flags); java_lang_reflect_Parameter::set_executable(rh(), method()); java_lang_reflect_Parameter::set_index(rh(), index);