RFR: 8165827: Support private interface methods in JNI, JDWP, JDI and JDB
David Holmes
david.holmes at oracle.com
Tue Oct 18 03:59:17 UTC 2016
Hi Lois, Dan, Serguei,
Went to push this today and realized I had left off the updated JNI
method lookup tests. As I said in the bug report JNI behaves as
expected, but there weren't any testcases so I added them:
http://cr.openjdk.java.net/~dholmes/8165827/webrev.hotspot/
Thanks,
David
On 11/10/2016 11:55 AM, David Holmes wrote:
> Turns out the only place changes were needed were in JDI.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8165827
>
> webrev: http://cr.openjdk.java.net/~dholmes/8165827/webrev/
>
> The spec change in ObjectReference is very simple and there is a CCC
> request in progress to ratify that change.
>
> The implementation change in ObjectReferenceImpl mirrors the updated
> spec and use the same format as already present in the class version of
> the check method.
>
> The test is a little more complex. This is obviously an extension to
> what is already tested in InterfaceMethodsTest. However IMT has a number
> of problem with the way it is currently written [1] - specifically it
> doesn't properly separate method lookup from method invocation. So I've
> added the capability to separate lookup and invocation for use with the
> private interface methods - I have not tried to address shortcomings of
> the existing tests. Though I did fix the return value checking logic!
> And did some clarifying comments and renaming in a couple of place.
>
> Still on the test I can't add the negative tests I would like to add
> because they actually pass due to a different long standing bug in JDI -
> [2]. So the actual private interface method testing is very simple: can
> I get the Method from the InterfaceType for the interface declaring the
> method? Can I then invoke that method on an instance of a class that
> implements the interface.
>
> Thanks,
> David
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8166453
> [2] https://bugs.openjdk.java.net/browse/JDK-8167416
More information about the hotspot-runtime-dev
mailing list