diff --git a/src/hotspot/share/runtime/reflection.cpp b/src/hotspot/share/runtime/reflection.cpp index d6c10c5c70c08..1797471d84bf4 100644 --- a/src/hotspot/share/runtime/reflection.cpp +++ b/src/hotspot/share/runtime/reflection.cpp @@ -270,17 +270,16 @@ void Reflection::array_set(jvalue* value, arrayOop a, int index, BasicType value if (!a->is_within_bounds(index)) { THROW(vmSymbols::java_lang_ArrayIndexOutOfBoundsException()); } - if (a->is_objArray()) { - if (value_type == T_OBJECT) { - oop obj = cast_to_oop(value->l); - if (obj != nullptr) { - Klass* element_klass = ObjArrayKlass::cast(a->klass())->element_klass(); - if (!obj->is_a(element_klass)) { - THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "array element type mismatch"); - } + if (value_type == T_OBJECT) { + assert(a->is_objArray(), "just checking"); + oop obj = cast_to_oop(value->l); + if (obj != nullptr) { + Klass* element_klass = ObjArrayKlass::cast(a->klass())->element_klass(); + if (!obj->is_a(element_klass)) { + THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "array element type mismatch"); } - objArrayOop(a)->obj_at_put(index, obj); } + objArrayOop(a)->obj_at_put(index, obj); } else { assert(a->is_typeArray(), "just checking"); BasicType array_type = TypeArrayKlass::cast(a->klass())->element_type();