--- old/src/share/vm/interpreter/interpreterRuntime.cpp Fri Sep 9 11:55:09 2011 +++ new/src/share/vm/interpreter/interpreterRuntime.cpp Fri Sep 9 11:55:09 2011 @@ -984,11 +984,8 @@ // check the access_flags for the field in the klass instanceKlass* ik = instanceKlass::cast(java_lang_Class::as_klassOop(cp_entry->f1())); - typeArrayOop fields = ik->fields(); int index = cp_entry->field_index(); - assert(index < fields->length(), "holders field index is out of range"); - // bail out if field accesses are not watched - if ((fields->ushort_at(index) & JVM_ACC_FIELD_ACCESS_WATCHED) == 0) return; + if ((ik->field_access_flags(index) & JVM_ACC_FIELD_ACCESS_WATCHED) == 0) return; switch(cp_entry->flag_state()) { case btos: // fall through @@ -1021,11 +1018,9 @@ // check the access_flags for the field in the klass instanceKlass* ik = instanceKlass::cast(k); - typeArrayOop fields = ik->fields(); int index = cp_entry->field_index(); - assert(index < fields->length(), "holders field index is out of range"); // bail out if field modifications are not watched - if ((fields->ushort_at(index) & JVM_ACC_FIELD_MODIFICATION_WATCHED) == 0) return; + if ((ik->field_access_flags(index) & JVM_ACC_FIELD_MODIFICATION_WATCHED) == 0) return; char sig_type = '\0';