< prev index next >

src/hotspot/share/runtime/reflection.cpp

Print this page
rev 50282 : 8203881: Print errornous size in NegativeArraySizeException

*** 335,345 **** arrayOop Reflection::reflect_new_array(oop element_mirror, jint length, TRAPS) { if (element_mirror == NULL) { THROW_0(vmSymbols::java_lang_NullPointerException()); } if (length < 0) { ! THROW_0(vmSymbols::java_lang_NegativeArraySizeException()); } if (java_lang_Class::is_primitive(element_mirror)) { Klass* tak = basic_type_mirror_to_arrayklass(element_mirror, CHECK_NULL); return TypeArrayKlass::cast(tak)->allocate(length, THREAD); } else { --- 335,348 ---- arrayOop Reflection::reflect_new_array(oop element_mirror, jint length, TRAPS) { if (element_mirror == NULL) { THROW_0(vmSymbols::java_lang_NullPointerException()); } if (length < 0) { ! ResourceMark rm(THREAD); ! stringStream ss; ! ss.print("%d", length); ! THROW_MSG_0(vmSymbols::java_lang_NegativeArraySizeException(), ss.as_string()); } if (java_lang_Class::is_primitive(element_mirror)) { Klass* tak = basic_type_mirror_to_arrayklass(element_mirror, CHECK_NULL); return TypeArrayKlass::cast(tak)->allocate(length, THREAD); } else {
*** 367,377 **** jint dimensions[MAX_DIM]; // C array copy of intArrayOop for (int i = 0; i < len; i++) { int d = dim_array->int_at(i); if (d < 0) { ! THROW_0(vmSymbols::java_lang_NegativeArraySizeException()); } dimensions[i] = d; } Klass* klass; --- 370,383 ---- jint dimensions[MAX_DIM]; // C array copy of intArrayOop for (int i = 0; i < len; i++) { int d = dim_array->int_at(i); if (d < 0) { ! ResourceMark rm(THREAD); ! stringStream ss; ! ss.print("%d", d); ! THROW_MSG_0(vmSymbols::java_lang_NegativeArraySizeException(), ss.as_string()); } dimensions[i] = d; } Klass* klass;
< prev index next >