RFR 8071657:JDI ObjectReferenceImpl.invokeMethod() validation fails for virtual invocations of method with declaring type being an interface
Staffan Larsen
staffan.larsen at oracle.com
Wed Feb 18 09:36:46 UTC 2015
> On 18 feb 2015, at 10:23, Jaroslav Bachorik <jaroslav.bachorik at oracle.com> wrote:
>
> On 18.2.2015 10:09, Staffan Larsen wrote:
>> InterfaceMethodsTest.java:386 Is the ObjectReference.INVOKE_SINGLE_THREADED really needed or should you just pass 0 here?
>
> The test is single-threaded so it shouldn't make a difference. But on the other hand this limitation to INVOKE_SINGLE_THREADED is not really necessary.
Yeah, I agree. It’s just confusing why the option is there in one case, but not in the other. Replace it will 0 and consider it reviewed!
/Staffan
>
> -JB-
>
>>
>> Thanks,
>> /Staffan
>>
>>> On 6 feb 2015, at 15:54, Jaroslav Bachorik <jaroslav.bachorik at oracle.com> wrote:
>>>
>>> Please, review the following change in JDI implementation
>>>
>>> Issue : https://bugs.openjdk.java.net/browse/JDK-8071657
>>> Webrev: http://cr.openjdk.java.net/~jbachorik/8071657/webrev.00
>>>
>>> After JDK-8042123 has been integrated it became possible to make non-virtual calls to interface default or static methods via JDI.
>>>
>>> Unfortunately, when a virtual invocation of a method with its declaring type being an interface is attempted it fails validation. The code fails to distinguish virtual and non-virtual calls and always fails for non-default methods.
>>>
>>> The solution is to check to check for the call being non-virtual before enforcing the method to be default.
>>>
>>> Thanks,
>>>
>>> -JB-
>>
>
More information about the serviceability-dev
mailing list