RFR: 8032010: Attempt to resolve abstract method in concrete class fails with AbstractMethodError (original) (raw)

Calvin Cheung calvin.cheung at oracle.com
Mon Feb 3 18:00:03 PST 2014


I forgot to include the open alias.

On 2/3/2014 5:26 PM, Lois Foltan wrote:

On 2/3/2014 7:59 PM, Calvin Cheung wrote: Hi Lois,

Thanks for your review. On 2/3/2014 3:48 PM, Lois Foltan wrote: Hi Calvin,

- src/share/vm/interpreter/linkResolver.cpp Looks good, no comments. - test/runtime/lambda-features/TestConcreteClassWithAbstractMethod.java Looks good. Please update the comments that contain the pseudo Java code describing the test's purpose. The comments need to reflect that the callsite to the method of interest, "m()", actually occurs within p1.T3's "test()" method. How about changing the comments to the following? 37 /* 38 * class T1 { public int m() {} } 39 * class T2 { public abstract int m(); } 40 * class T3 { public int m() {} } 41 * 42 * Call site: T3.test() { invokevirtual T2.m() } 43 * T3.m() should be invoked 44 */ Yes, thank you. I don't know if you meant to cc the openjdk distro or not? I don't need to see another webrev at this point, looks great! Lois thanks, Calvin

Thank you, Lois On 1/31/2014 5:45 PM, Calvin Cheung wrote: This change, by removing a check in LinkResolver::resolvemethod(), is to conform with the recent change in JVMS-8 [1]. The following check during method resolution is removed: JVMS-5.4.3.3. Method Resolution "If method lookup succeeds and the method is abstract, but C is not abstract, method resolution throws an AbstractMethodError." bug: https://bugs.openjdk.java.net/browse/JDK-8032010 webrev: http://cr.openjdk.java.net/~ccheung/8032010/webrev/ tests: (on linux-x64) vm.quick jck vm and lang jtreg on java/util/stream and the new testcase defmeth jprt thanks, Calvin [1] http://cr.openjdk.java.net/~dlsmith/jsr335-0.9.1.html#J



More information about the hotspot-dev mailing list