+1
/Claes
On 2016-10-27 21:24, Paul Sandoz wrote:
Gentle reminder.
Paul.
On 18 Oct 2016, at 11:41, Paul Sandoz <paul.san...@oracle.com> wrote:
Hi,
Please review:
http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8163553-vh-mh-link-errors-not-wrapped/webrev/
This is the issue that motivated a change in the behaviour of indy wrapping
Errors in BootstrapMethodError, JDK-8166974. I plan to push this issue with
JDK-8166974 to hs, since they are related in behaviour even though there is no
direct dependency between the patches.
When invoking signature-polymorphic methods a similar but hardcoded dance
occurs, with an appeal to Java code, to link the call site.
- MethodHandle.invoke/invokeExact (and the VH methods) would wrap all Errors in
LinkageError. Now they are passed through, thus an Error like ThreadDeath is
not wrapped.
- MethodHandle.invoke/invokeExact/invokeBasic throw Throwable, and in certain
cases the Throwable is wrapped in an InternalError. In many other cases Error
and RuntimeException are propagated, which i think in general is the right
pattern, so i consistently applied that.
- I updated StringConcatFactory to also pass through Errors and avoid unduly
wrapping StringConcatException in another instance of StringConcatException.
(LambdaMetafactory and associated classes required no changes.)
Thanks,
Paul.