Thank you, John. Since I'm not a Committer in JDK8, I need a sponsor to push this fix. Any volunteers? :-) Will provide the changeset at first demand.
Best regards, Vladimir Ivanov On 11/9/13 3:26 AM, John Rose wrote: > Reviewed. Thanks for the fix. The test case will also be a useful quick > test for unboxed catchEx paths. — John > > On Nov 8, 2013, at 7:25 AM, Vladimir Ivanov <vladimir.x.iva...@oracle.com> > wrote: > >> http://cr.openjdk.java.net/~vlivanov/8027823/webrev.00/ >> >> MethodHandleImpl.makeGuardWithCatch has special invokers >> (GuardWithCatch.invoke_L*) for methods with arity up to 8. >> When method arity is larger, generic invoker (GuardWithCatch.invoke_V) >> is used. >> >> Generic invoker expects GuardWithCatch.target & GuardWithCatch.catcher >> method handles to have (Object... av)Object type, but they can reference >> arbitrary methods, so type conversion is needed. >> >> makeSpreadArguments takes care of parameters' type conversion, but >> return type is left as is. That's the reason why GuardWithCatch.invoke_V >> fails to invoke both target or catcher. >> >> The fix is to add return type conversion on both paths. >> >> Testing: failing test, test/java/lang/invoke/ >> >> Thanks! >> >> Best regards, >> Vladimir Ivanov >> >> JBS: https://bugs.openjdk.java.net/browse/JDK-8027823 >> _______________________________________________ >> mlvm-dev mailing list >> mlvm-dev@openjdk.java.net >> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev > _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev