< prev index next >

src/hotspot/share/oops/klass.cpp

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


 125 // Find LCA in class hierarchy
 126 Klass *Klass::LCA( Klass *k2 ) {
 127   Klass *k1 = this;
 128   while( 1 ) {
 129     if( k1->is_subtype_of(k2) ) return k2;
 130     if( k2->is_subtype_of(k1) ) return k1;
 131     k1 = k1->super();
 132     k2 = k2->super();
 133   }
 134 }
 135 
 136 
 137 void Klass::check_valid_for_instantiation(bool throwError, TRAPS) {
 138   ResourceMark rm(THREAD);
 139   THROW_MSG(throwError ? vmSymbols::java_lang_InstantiationError()
 140             : vmSymbols::java_lang_InstantiationException(), external_name());
 141 }
 142 
 143 
 144 void Klass::copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS) {
 145   THROW(vmSymbols::java_lang_ArrayStoreException());



 146 }
 147 
 148 
 149 void Klass::initialize(TRAPS) {
 150   ShouldNotReachHere();
 151 }
 152 
 153 bool Klass::compute_is_subtype_of(Klass* k) {
 154   assert(k->is_klass(), "argument must be a class");
 155   return is_subclass_of(k);
 156 }
 157 
 158 Klass* Klass::find_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const {
 159 #ifdef ASSERT
 160   tty->print_cr("Error: find_field called on a klass oop."
 161                 " Likely error: reflection method does not correctly"
 162                 " wrap return value in a mirror object.");
 163 #endif
 164   ShouldNotReachHere();
 165   return NULL;




 125 // Find LCA in class hierarchy
 126 Klass *Klass::LCA( Klass *k2 ) {
 127   Klass *k1 = this;
 128   while( 1 ) {
 129     if( k1->is_subtype_of(k2) ) return k2;
 130     if( k2->is_subtype_of(k1) ) return k1;
 131     k1 = k1->super();
 132     k2 = k2->super();
 133   }
 134 }
 135 
 136 
 137 void Klass::check_valid_for_instantiation(bool throwError, TRAPS) {
 138   ResourceMark rm(THREAD);
 139   THROW_MSG(throwError ? vmSymbols::java_lang_InstantiationError()
 140             : vmSymbols::java_lang_InstantiationException(), external_name());
 141 }
 142 
 143 
 144 void Klass::copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS) {
 145   ResourceMark rm(THREAD);
 146   assert(s != NULL, "Throw NPE!");
 147   THROW_MSG(vmSymbols::java_lang_ArrayStoreException(),
 148             err_msg("arraycopy: source type %s is not an array", s->klass()->external_name()));
 149 }
 150 
 151 
 152 void Klass::initialize(TRAPS) {
 153   ShouldNotReachHere();
 154 }
 155 
 156 bool Klass::compute_is_subtype_of(Klass* k) {
 157   assert(k->is_klass(), "argument must be a class");
 158   return is_subclass_of(k);
 159 }
 160 
 161 Klass* Klass::find_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const {
 162 #ifdef ASSERT
 163   tty->print_cr("Error: find_field called on a klass oop."
 164                 " Likely error: reflection method does not correctly"
 165                 " wrap return value in a mirror object.");
 166 #endif
 167   ShouldNotReachHere();
 168   return NULL;


< prev index next >