Please review fix for 7195867: NPG: SAJDI tests fail with sun.jvm.hotspot.types.WrongTypeException: No,suitable match for type

John Coomes John.Coomes at
Wed Sep 5 14:37:19 PDT 2012

Coleen Phillimore (coleen.phillimore at wrote:
> Summary: Need to restore the vtable in metadata when we restore the type 
> from the shared archive.
> When dumping the shared archive all the C++ vtables are patched to be a 
> piece of code that inserts the actual vtable in the type, and calls 
> through the actual vtable to where the function was restored.   SA uses 
> the address of the vtable to determine which metadata type it is looking 
> at.  By calling one virtual function during restore, we can restore the 
> c++ vtable to the actual one so SA can match it.

This code is executed solely to trigger a non-obvious side effect; i'd
like to see that made much more explicit (preferably in the code, but
at least in a comment).  Otherwise, I'm sure someone will be tempted
to remove the "useless" guarantee someday.

In the code you can add a simple method (e.g., restore_vtable() or
similar) that wraps the virtual call.

Aside from that, looks good.


> (systemDictionary is a whitespace change).
> Tested sajdi tests.
> Thanks,
> Coleen

More information about the hotspot-dev mailing list