# HG changeset patch # User Thomas Wuerthinger # Date 1321487537 -3600 # Node ID 2a0cb564e470bbb2f95ad1125fb2da1d46c0eedf # Parent 4123781869da513b65ac53549652955952136e4e Do not use result when resolve_field throws an exception. diff -r 4123781869da -r 2a0cb564e470 src/share/vm/graal/graalVMEntries.cpp --- a/src/share/vm/graal/graalVMEntries.cpp Thu Nov 17 00:28:31 2011 +0100 +++ b/src/share/vm/graal/graalVMEntries.cpp Thu Nov 17 00:52:17 2011 +0100 @@ -548,12 +548,13 @@ true, false, Thread::current()); if (HAS_PENDING_EXCEPTION) { CLEAR_PENDING_EXCEPTION; + } else { + offset = result.field_offset(); + flags = result.access_flags(); + holder_klass = result.klass()->as_klassOop(); + basic_type = result.field_type(); + holder = GraalCompiler::get_RiType(holder_klass, CHECK_NULL); } - offset = result.field_offset(); - flags = result.access_flags(); - holder_klass = result.klass()->as_klassOop(); - basic_type = result.field_type(); - holder = GraalCompiler::get_RiType(holder_klass, CHECK_NULL); } Handle type = GraalCompiler::get_RiTypeFromSignature(cp, sig_index, cp->pool_holder(), CHECK_NULL);