8203881: Print erroneous size in NegativeArraySizeException

Reviewed-by: dholmes, stuefe
This commit is contained in:
Goetz Lindenmaier 2018-05-30 11:39:26 +02:00
parent 6a48db9cf6
commit ff2c3d4dbe
6 changed files with 315 additions and 7 deletions

View file

@ -337,7 +337,7 @@ arrayOop Reflection::reflect_new_array(oop element_mirror, jint length, TRAPS) {
THROW_0(vmSymbols::java_lang_NullPointerException());
}
if (length < 0) {
THROW_0(vmSymbols::java_lang_NegativeArraySizeException());
THROW_MSG_0(vmSymbols::java_lang_NegativeArraySizeException(), err_msg("%d", length));
}
if (java_lang_Class::is_primitive(element_mirror)) {
Klass* tak = basic_type_mirror_to_arrayklass(element_mirror, CHECK_NULL);
@ -369,7 +369,7 @@ arrayOop Reflection::reflect_new_multi_array(oop element_mirror, typeArrayOop di
for (int i = 0; i < len; i++) {
int d = dim_array->int_at(i);
if (d < 0) {
THROW_0(vmSymbols::java_lang_NegativeArraySizeException());
THROW_MSG_0(vmSymbols::java_lang_NegativeArraySizeException(), err_msg("%d", d));
}
dimensions[i] = d;
}