review for 7105305: assert check_method_context proper context
Tom Rodriguez
tom.rodriguez at oracle.com
Wed Oct 26 15:45:36 PDT 2011
On Oct 26, 2011, at 3:20 PM, John Rose wrote:
> On Oct 26, 2011, at 2:26 PM, Tom Rodriguez wrote:
>
>> This may causes some other CTW issues but I will file separate bugs for those, unless they have a simple fix I can include here.
>
> Good.
Thanks for identifying the real fix.
>
> Besides uncovering new CTW bugs, I think there's a risk in initializing CTW classes eagerly: It might cause CTW to give up on processing a class C if its referent D fails to initialize. This could reduce coverage, since perhaps C used to load and get compiled, where now D's failed initialization will cause C to be skipped.
It doesn't work that way:
constantPoolKlass::preload_and_initialize_all_classes(k->constants(), THREAD);
if (HAS_PENDING_EXCEPTION) {
// If something went wrong in preloading we just ignore it
clear_pending_exception_if_not_oom(CHECK);
tty->print_cr("Preloading failed for (%d) %s", _compile_the_world_counter, buffer);
}
Previously we would load the class and we might throw exceptions and that wouldn't stop compiles either. We just have more opportunities to throw exceptions that we will just ignore.
tom
>
> I suggest adding a print statement to the path where D's initialization fails, so we can track whether coverage gets reduced.
>
> -- John
More information about the hotspot-compiler-dev
mailing list