RFR 8071657:JDI ObjectReferenceImpl.invokeMethod() validation fails for virtual invocations of method with declaring type being an interface

Jaroslav Bachorik jaroslav.bachorik at oracle.com
Wed Feb 18 09:23:30 UTC 2015


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.

-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