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