1.1 --- a/src/share/vm/opto/parse2.cpp Mon Jul 02 09:58:06 2012 +0200 1.2 +++ b/src/share/vm/opto/parse2.cpp Mon Jul 02 12:59:43 2012 -0700 1.3 @@ -1278,9 +1278,9 @@ 1.4 // or the narrowOop equivalent. 1.5 const Type* obj_type = _gvn.type(obj); 1.6 const TypeOopPtr* tboth = obj_type->join(con_type)->isa_oopptr(); 1.7 - if (tboth != NULL && tboth != obj_type && tboth->higher_equal(obj_type)) { 1.8 + if (tboth != NULL && tboth->klass_is_exact() && tboth != obj_type && 1.9 + tboth->higher_equal(obj_type)) { 1.10 // obj has to be of the exact type Foo if the CmpP succeeds. 1.11 - assert(tboth->klass_is_exact(), "klass should be exact"); 1.12 int obj_in_map = map()->find_edge(obj); 1.13 JVMState* jvms = this->jvms(); 1.14 if (obj_in_map >= 0 &&