diff -r dc9d04930c82 -r a30fef61d0b7 hotspot/src/share/vm/opto/doCall.cpp --- a/hotspot/src/share/vm/opto/doCall.cpp Thu Jul 08 14:29:44 2010 -0700 +++ b/hotspot/src/share/vm/opto/doCall.cpp Mon Jul 12 10:58:25 2010 -0700 @@ -343,7 +343,8 @@ // being initialized. Uncommon-trap for not-initialized static or // v-calls. Let interface calls happen. ciInstanceKlass* holder_klass = dest_method->holder(); - if (!holder_klass->is_initialized() && + if (!holder_klass->is_being_initialized() && + !holder_klass->is_initialized() && !holder_klass->is_interface()) { uncommon_trap(Deoptimization::Reason_uninitialized, Deoptimization::Action_reinterpret,