< prev index next >

src/hotspot/share/oops/typeArrayKlass.cpp

Print this page
rev 50519 : 8204943: Improve message of ArrayStoreException.

*** 131,141 **** void TypeArrayKlass::copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS) { assert(s->is_typeArray(), "must be type array"); // Check destination if (!d->is_typeArray() || element_type() != TypeArrayKlass::cast(d->klass())->element_type()) { ! THROW(vmSymbols::java_lang_ArrayStoreException()); } // Check is all offsets and lengths are non negative if (src_pos < 0 || dst_pos < 0 || length < 0) { // Pass specific exception reason. --- 131,146 ---- void TypeArrayKlass::copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS) { assert(s->is_typeArray(), "must be type array"); // Check destination if (!d->is_typeArray() || element_type() != TypeArrayKlass::cast(d->klass())->element_type()) { ! ResourceMark rm; ! stringStream ss; ! ss.print("arraycopy: type mismatch: can not copy %s[] into %s[]", ! type2name_tab[ArrayKlass::cast(s->klass())->element_type()], ! type2name_tab[ArrayKlass::cast(d->klass())->element_type()]); ! THROW_MSG(vmSymbols::java_lang_ArrayStoreException(), ss.as_string()); } // Check is all offsets and lengths are non negative if (src_pos < 0 || dst_pos < 0 || length < 0) { // Pass specific exception reason.
< prev index next >