On 7 feb 2014, at 11:56, Alan Bateman <alan.bate...@oracle.com> wrote:
> On 07/02/2014 10:46, Staffan Larsen wrote: >> A few of the public read and write methods in FileInputStream and >> RandomAccessFile are declared native. This means that it is hard to >> instrument them using byte code instrumentation. Changing the public methods >> to be to non-native and instead calling private native methods simplifies >> instrumentation. >> >> webrev: http://cr.openjdk.java.net/~sla/8033911/webrev.00/ >> bug: https://bugs.openjdk.java.net/browse/JDK-8033911 >> > I assume you know this already but both JVM TI and java.lang.instrument do > have support for hooking into the resolution of native methods. It is of > course more complicated and not for the fainthearted. Yes, but a large drawback of using SetNativeMethodPrefix is that it requires schema changes to the class file (adding a method). This is not possible when dynamically attaching an instrumentation agent. > The proposed changes look okay. The only thing is that it might not be > complete but perhaps it's not too interesting to instrument methods such as > skip or available. That was my thinking, too. Thanks, /Staffan