diff -r f040cf9fc9c0 -r 752ba2e5f6d0 src/share/vm/opto/parse3.cpp --- a/src/share/vm/opto/parse3.cpp Wed Feb 19 20:12:43 2014 -0800 +++ b/src/share/vm/opto/parse3.cpp Tue Feb 25 15:11:18 2014 -0800 @@ -361,7 +361,7 @@ // should_be_constant = (oop not scavengable || ScavengeRootsInCode >= 2) // An oop is not scavengable if it is in the perm gen. if (stable_type != NULL && con_type != NULL && con_type->isa_oopptr()) - con_type = con_type->join(stable_type); + con_type = con_type->join_speculative(stable_type); break; case T_ILLEGAL: