RFR: 8087342: crash in klassItable_initialize_itable_for_interface

Lois Foltan lois.foltan at oracle.com
Thu Jul 16 00:12:39 UTC 2015

On 7/15/2015 12:40 PM, Karen Kinnear wrote:
> Please review for JDK9:
> bug: https://bugs.openjdk.java.net/browse/JDK-8087342
> webrev: http://cr.openjdk.java.net/~acorn/8087342.2/webrev/
> Crash occurs in product when we should through IncompatibleClassChangeError.

Hi Karen,
I think this looks good and I really like how straight forward 
klassVtable::is_miranda now is.  Some minor clarification comments:

- src/share/vm/instanceKlass.cpp
comments for the find_local_method* were changed to state:

+// note that the local methods array can have up to one overpass, one static
+// and one instance (private or not) with the same name/signature

I think there are two combinations that the code depends on not 
occurring, they are:
       1. all 3 are in existence in the local methods array (one 
overpass, one static and one instance)
       2. the combination of one static and one instance (private or not)
In other words there has to be an overpass to cause more than one method 
with the same name/signature within the local methods array. And it is 
either an overpass and a static or an overpass and an instance, but not 
all 3.  Correct me if I am wrong.

- src/share/vm/oops/klassVtable.cpp
Thank you for adding the improved comments ahead of is_miranda.  My read 
is that overpass methods are not considered miranda methods and I agree 
with that statement.  Yet, Klass::find_overpass is specified in the 
code.  I think the code is correct, but based on the comment I would 
have thought Klass::skip_overpass should have been specified?  Much like 
skip_static and skip_private.  So based on your later statement that 
"Abstract methods may already have been handled via overpasses" it 
implies that overpass methods, although not miranda methods, can satisfy 
or stand in for an miranda during pass 2.  So they must be found, did I 
understand that correctly?

Again, looks good.  I don't need to see another review.  My comments 
were merely clarification based.


> testing:
> internal tests: Defmeth (updated), SelectionResolution - product and fastdebug
> jprt
> jck
> jtreg/hotspot_all
> jtreg/jdk_streams
> test,noncolo.testlist, -atk quick
> (jck and macosx testing in progress)
> thanks,
> Karen

More information about the hotspot-runtime-dev mailing list