RFR: 8165827: Support private interface methods in JNI, JDWP, JDI and JDB

David Holmes david.holmes at oracle.com
Tue Oct 11 01:55:12 UTC 2016


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 serviceability-dev mailing list