--- a/hotspot/src/share/vm/opto/macro.cpp Thu Jul 22 15:29:22 2010 -0700
+++ b/hotspot/src/share/vm/opto/macro.cpp Fri Jul 23 10:07:46 2010 -0700
@@ -720,7 +720,7 @@
if (basic_elem_type == T_OBJECT || basic_elem_type == T_ARRAY) {
if (!elem_type->is_loaded()) {
field_type = TypeInstPtr::BOTTOM;
- } else if (field != NULL && field->is_constant()) {
+ } else if (field != NULL && field->is_constant() && field->is_static()) {
// This can happen if the constant oop is non-perm.
ciObject* con = field->constant_value().as_object();
// Do not "join" in the previous type; it doesn't add value,