diff -r 04d32e7fad07 -r de95063c0e34 src/share/vm/opto/parse3.cpp --- a/src/share/vm/opto/parse3.cpp Tue Jan 14 17:46:48 2014 -0800 +++ b/src/share/vm/opto/parse3.cpp Fri Jan 24 09:31:53 2014 +0100 @@ -337,7 +337,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: