RFR: 8013635 Lambda: vm conditionally create bridges for generic signatures

Karen Kinnear karen.kinnear at oracle.com
Thu Jun 20 13:18:50 PDT 2013


Please review:
https://jbs.oracle.com/bugs/browse/JDK-8013635: BridgeMethodsLinearTest.java fails in 
Lambda nightly runs

webrev: http://cr.openjdk.java.net/~acorn/8013635.1/webrev/

This particular set of changes modifies the vm to conditionally handle generic signatures
when processing default methods. Basically this code refactors the defaultMethods logic
to work either with generic signatures or only with erased signatures.

The flag: ParseGenericDefaults is set to "true" in this webrev to continue to work with
the current javac and lambda metafactory components.

The intention is to change ParseGenericDefaults to false and simultaneously change
javac to generate bridges to handle generic signatures in interface methods, and
the metafactory to no longer generate bridges. 
With the flag change, the vm will no longer generate bridges for generic
signatures.

A subsequent fix: 8012294 will completely remove the vm generic interface handling
for jdk8.

Please approve this change with both flag settings, so we can coordinate making
those changes in the order that is least disruptive.

Testing:

I. hotspot-rt: ParseGenericDefaults=true:
jprt
vm.quick.testlist
jdk-jtreg - in progress
jck-lang, vm - in progress

II. Lambda repo: ParseGenericDefaults=false:
These two files, with other changes not currently needed - tested in lambda repository for a month
   including tl nightlies and updated BridgeMethodsLinearTest

III. Current hotspot-rt with these two files only and ParseGenericDefaults=false
with jdk8tl repository with 8015402: metafactory changes and 8013789: javac changes:

vm.quick.testlist - in progress
jdk-jtreg - in progress
jck-lang, vm - in progress

thanks,
Karen


More information about the hotspot-runtime-dev mailing list