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