[8u40] Request for backport approval: 8048121: et. al. -- javac complex method references

Robert Field robert.field at oracle.com
Tue Nov 11 22:19:37 UTC 2014


Please approve the backport from 9 to 8u40 of a fix for a bug cluster --

    8048121: javac complex method references: revamp and simplify
    8037404: javac NPE or VerifyError for code with constructor
    reference of inner class
    8047341: lambda reference to inner class in base class causes
    LambdaConversionException
    8044748: JVM cannot access constructor though ::new reference
    although can call it directly
    8044737: Lambda: NPE while obtaining method reference through lambda
    expression
    8038776: VerifyError when running successfully compiled java class

    Reviewed-by: dlsmith, vromero

Fix is a non-trivial rewrite of the handling of complex method 
references in javac.  Not counting tests, this is 198 deleted lines, 105 
added lines.  There are ten new tests.
In addition to the above bugs addressed, there were several duplicates 
closed, showing that these bugs appear frequently in the wild.
The new code has fermented in JDK9 since June without any bug reports 
against it.

Bug: https://bugs.openjdk.java.net/browse/JDK-8048121
Bug: https://bugs.openjdk.java.net/browse/JDK-8037404
Bug: https://bugs.openjdk.java.net/browse/JDK-8047341
Bug: https://bugs.openjdk.java.net/browse/JDK-8044748
Bug: https://bugs.openjdk.java.net/browse/JDK-8044737
Bug: https://bugs.openjdk.java.net/browse/JDK-8038776

JDK9 changeset: 
http://hg.openjdk.java.net/jdk9/dev/langtools/rev/97731dc59ef6
JDK9 additional changeset (added tests): 
http://hg.openjdk.java.net/jdk9/dev/langtools/rev/2b6b96ed3878

JDK8 changes match JDK9 except in trivial ways: line offset, indenting, 
diamond operator in removed code



More information about the jdk8u-dev mailing list