S lambda reflection code review please

Karen Kinnear KAREN.KINNEAR at oracle.com
Wed Mar 20 08:52:43 PDT 2013


Thank you David for the quick review.

For lambda to be able to extend existing interfaces without requiring those who implement them to change their
sources or even to recompile, the project has added public concrete instance methods in interfaces, called default methods.
The model is that if an implementor of an interface does not provide an implementation for a default method, the default
method will be the fallback.

An overpass method is a bridge created by the vm from an abstract method signature to a default method.
The vm uses generic signatures, allowing covariant overrides on return types to generate the method signatures
to determine which methods are appropriate to bridge, including appropriate checkcasts in the overpass which
then does an invokespecial to the default method.

For more information, Keith wrote up the goals and implementation description here:
http://cr.openjdk.java.net/~kamg/default_methods/

thanks,
Karen

On Mar 18, 2013, at 9:19 PM, David Holmes wrote:

> Hi Karen,
> 
> Skipping of overpass methods looks fine.
> 
> Only one question: what is an overpass method? :)
> 
> David
> 
> On 19/03/2013 4:13 AM, Karen Kinnear wrote:
>> 
>> Please review:
>> 
>> http://cr.openjdk.java.net/~acorn/8010017/webrev/
>> buglink:
>> https://jbs.oracle.com/bugs/browse/JDK-8010017
>> 
>> Tests run: (linux-x86)
>> manual test for default methods (public concrete instance methods in interfaces), synthetic private and synthetic static methods
>>    - more extensive stress tests in development which will be added to the test suites
>> vm.quick.testlist
>> jtreg java.lang.reflect, closed.java.lang.reflect
>> 
>> thanks,
>> Karen
>> 



More information about the hotspot-runtime-dev mailing list