[JDK8] RFR (XS): JSR292: IncompatibleClassChangeError in LambdaForm for CharSequence.toString() method handle type converter
john.r.rose at oracle.com
Tue Jan 21 19:25:32 UTC 2014
On Jan 15, 2014, at 6:49 PM, Christian Thalinger <christian.thalinger at oracle.com> wrote:
> John would know the answer.
> Given this change should go into JDK 8 I think we should push for now. If we can come up with a better way to handle these situations we can push another change for 9 or 8u20.
(Back from vacation.)
Vladimir's change for bytecode generation is safe. It assumes something stable, which is that virtual invocation mode can apply to interfaces only because they inherit Object. Therefore we can back off from invokevirtual to invokeinterface, without changing behavior.
FTR, this fix may be redundant with this changeset:
...and specifically with the line of code which says "m_klass = m_klass_non_interface". This redundancy is of the belt-and-suspenders kind; it could be changed to an assert, but is fine the way it is.
Thanks for fixing this!
More information about the core-libs-dev