--- old/src/share/vm/prims/jvm.cpp 2014-10-08 17:03:08.000000000 -0700 +++ new/src/share/vm/prims/jvm.cpp 2014-10-08 17:03:08.000000000 -0700 @@ -3590,8 +3590,10 @@ THROW_0(vmSymbols::java_lang_NullPointerException()); } oop a = JNIHandles::resolve_non_null(arr); - if (!a->is_array() || (type_array_only && !a->is_typeArray())) { + if (!a->is_array()) { THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(), "Argument is not an array"); + } else if (type_array_only && !a->is_typeArray()) { + THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(), "Argument is not a primitive type array"); } return arrayOop(a); }