[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