8054720: Modifications of I/O methods for instrumentation purposes
Wrap some native methods in Java methods. Reviewed-by: rriggs
This commit is contained in:
parent
15aa55d99e
commit
0bbb54fff6
jdk
make/mapfiles/libjava
src/java.base
share
classes/java
native/libjava
unix/native/libjava
windows/native/libjava
@ -78,13 +78,13 @@ SUNWprivate_1.1 {
|
||||
Java_java_io_FileInputStream_available;
|
||||
Java_java_io_FileInputStream_close0;
|
||||
Java_java_io_FileInputStream_initIDs;
|
||||
Java_java_io_FileInputStream_open;
|
||||
Java_java_io_FileInputStream_open0;
|
||||
Java_java_io_FileInputStream_read0;
|
||||
Java_java_io_FileInputStream_readBytes;
|
||||
Java_java_io_FileInputStream_skip;
|
||||
Java_java_io_FileOutputStream_close0;
|
||||
Java_java_io_FileOutputStream_initIDs;
|
||||
Java_java_io_FileOutputStream_open;
|
||||
Java_java_io_FileOutputStream_open0;
|
||||
Java_java_io_FileOutputStream_write;
|
||||
Java_java_io_FileOutputStream_writeBytes;
|
||||
Java_java_io_ObjectInputStream_bytesToDoubles;
|
||||
@ -97,7 +97,7 @@ SUNWprivate_1.1 {
|
||||
Java_java_io_RandomAccessFile_getFilePointer;
|
||||
Java_java_io_RandomAccessFile_initIDs;
|
||||
Java_java_io_RandomAccessFile_length;
|
||||
Java_java_io_RandomAccessFile_open;
|
||||
Java_java_io_RandomAccessFile_open0;
|
||||
Java_java_io_RandomAccessFile_read0;
|
||||
Java_java_io_RandomAccessFile_readBytes;
|
||||
Java_java_io_RandomAccessFile_seek0;
|
||||
|
@ -44,7 +44,7 @@ text: .text%Java_java_io_UnixFileSystem_initIDs;
|
||||
text: .text%Java_java_io_UnixFileSystem_canonicalize;
|
||||
text: .text%JNU_GetStringPlatformChars;
|
||||
text: .text%JNU_ReleaseStringPlatformChars;
|
||||
text: .text%Java_java_io_FileInputStream_open;
|
||||
text: .text%Java_java_io_FileInputStream_open0;
|
||||
text: .text%fileOpen;
|
||||
text: .text%Java_java_io_FileInputStream_readBytes;
|
||||
text: .text%readBytes;
|
||||
|
@ -47,7 +47,7 @@ text: .text%Java_java_io_UnixFileSystem_initIDs;
|
||||
text: .text%Java_java_io_UnixFileSystem_canonicalize;
|
||||
text: .text%JNU_GetStringPlatformChars;
|
||||
text: .text%JNU_ReleaseStringPlatformChars;
|
||||
text: .text%Java_java_io_FileInputStream_open;
|
||||
text: .text%Java_java_io_FileInputStream_open0;
|
||||
text: .text%fileOpen;
|
||||
text: .text%Java_java_io_FileInputStream_readBytes;
|
||||
text: .text%readBytes;
|
||||
|
@ -57,7 +57,7 @@ text: .text%Java_java_lang_ClassLoader_00024NativeLibrary_load;
|
||||
text: .text%Java_java_lang_ClassLoader_00024NativeLibrary_find;
|
||||
text: .text%Java_java_lang_Float_floatToIntBits;
|
||||
text: .text%Java_java_lang_Double_doubleToLongBits;
|
||||
text: .text%Java_java_io_FileInputStream_open;
|
||||
text: .text%Java_java_io_FileInputStream_open0;
|
||||
text: .text%fileOpen;
|
||||
text: .text%Java_java_io_UnixFileSystem_getLength;
|
||||
text: .text%Java_java_io_FileInputStream_readBytes;
|
||||
@ -90,7 +90,7 @@ text: .text%JNU_NotifyAll;
|
||||
text: .text%JNU_CallMethodByName;
|
||||
text: .text%JNU_CallMethodByNameV;
|
||||
text: .text%Java_java_util_logging_FileHandler_lockFile;
|
||||
text: .text%Java_java_io_FileOutputStream_open;
|
||||
text: .text%Java_java_io_FileOutputStream_open0;
|
||||
text: .text%Java_java_io_UnixFileSystem_createDirectory;
|
||||
text: .text%Java_java_io_UnixFileSystem_getLastModifiedTime;
|
||||
text: .text%Java_java_util_prefs_FileSystemPreferences_lockFile0;
|
||||
|
@ -184,7 +184,16 @@ class FileInputStream extends InputStream
|
||||
* Opens the specified file for reading.
|
||||
* @param name the name of the file
|
||||
*/
|
||||
private native void open(String name) throws FileNotFoundException;
|
||||
private native void open0(String name) throws FileNotFoundException;
|
||||
|
||||
// wrap native call to allow instrumentation
|
||||
/**
|
||||
* Opens the specified file for reading.
|
||||
* @param name the name of the file
|
||||
*/
|
||||
private void open(String name) throws FileNotFoundException {
|
||||
open0(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads a byte of data from this input stream. This method blocks
|
||||
|
@ -256,9 +256,20 @@ class FileOutputStream extends OutputStream
|
||||
* @param name name of file to be opened
|
||||
* @param append whether the file is to be opened in append mode
|
||||
*/
|
||||
private native void open(String name, boolean append)
|
||||
private native void open0(String name, boolean append)
|
||||
throws FileNotFoundException;
|
||||
|
||||
// wrap native call to allow instrumentation
|
||||
/**
|
||||
* Opens a file, with the specified name, for overwriting or appending.
|
||||
* @param name name of file to be opened
|
||||
* @param append whether the file is to be opened in append mode
|
||||
*/
|
||||
private void open(String name, boolean append)
|
||||
throws FileNotFoundException {
|
||||
open0(name, append);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes the specified byte to this file output stream.
|
||||
*
|
||||
|
@ -296,9 +296,26 @@ public class RandomAccessFile implements DataOutput, DataInput, Closeable {
|
||||
* @param mode the mode flags, a combination of the O_ constants
|
||||
* defined above
|
||||
*/
|
||||
private native void open(String name, int mode)
|
||||
private native void open0(String name, int mode)
|
||||
throws FileNotFoundException;
|
||||
|
||||
// wrap native call to allow instrumentation
|
||||
/**
|
||||
* Opens a file and returns the file descriptor. The file is
|
||||
* opened in read-write mode if the O_RDWR bit in {@code mode}
|
||||
* is true, else the file is opened as read-only.
|
||||
* If the {@code name} refers to a directory, an IOException
|
||||
* is thrown.
|
||||
*
|
||||
* @param name the name of the file
|
||||
* @param mode the mode flags, a combination of the O_ constants
|
||||
* defined above
|
||||
*/
|
||||
private void open(String name, int mode)
|
||||
throws FileNotFoundException {
|
||||
open0(name, mode);
|
||||
}
|
||||
|
||||
// 'Read' primitives
|
||||
|
||||
/**
|
||||
|
@ -96,6 +96,26 @@ class SocketInputStream extends FileInputStream
|
||||
int timeout)
|
||||
throws IOException;
|
||||
|
||||
// wrap native call to allow instrumentation
|
||||
/**
|
||||
* Reads into an array of bytes at the specified offset using
|
||||
* the received socket primitive.
|
||||
* @param fd the FileDescriptor
|
||||
* @param b the buffer into which the data is read
|
||||
* @param off the start offset of the data
|
||||
* @param len the maximum number of bytes read
|
||||
* @param timeout the read timeout in ms
|
||||
* @return the actual number of bytes read, -1 is
|
||||
* returned when the end of the stream is reached.
|
||||
* @exception IOException If an I/O error has occurred.
|
||||
*/
|
||||
private int socketRead(FileDescriptor fd,
|
||||
byte b[], int off, int len,
|
||||
int timeout)
|
||||
throws IOException {
|
||||
return socketRead0(fd, b, off, len, timeout);
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads into a byte array data from the socket.
|
||||
* @param b the buffer into which the data is read
|
||||
@ -147,7 +167,7 @@ class SocketInputStream extends FileInputStream
|
||||
// acquire file descriptor and do the read
|
||||
FileDescriptor fd = impl.acquireFD();
|
||||
try {
|
||||
n = socketRead0(fd, b, off, length, timeout);
|
||||
n = socketRead(fd, b, off, length, timeout);
|
||||
if (n > 0) {
|
||||
return n;
|
||||
}
|
||||
@ -165,7 +185,7 @@ class SocketInputStream extends FileInputStream
|
||||
impl.setConnectionResetPending();
|
||||
impl.acquireFD();
|
||||
try {
|
||||
n = socketRead0(fd, b, off, length, timeout);
|
||||
n = socketRead(fd, b, off, length, timeout);
|
||||
if (n > 0) {
|
||||
return n;
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ Java_java_io_FileInputStream_initIDs(JNIEnv *env, jclass fdClass) {
|
||||
*/
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_java_io_FileInputStream_open(JNIEnv *env, jobject this, jstring path) {
|
||||
Java_java_io_FileInputStream_open0(JNIEnv *env, jobject this, jstring path) {
|
||||
fileOpen(env, this, path, fis_fd, O_RDONLY);
|
||||
}
|
||||
|
||||
|
@ -47,8 +47,8 @@ Java_java_io_RandomAccessFile_initIDs(JNIEnv *env, jclass fdClass) {
|
||||
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_java_io_RandomAccessFile_open(JNIEnv *env,
|
||||
jobject this, jstring path, jint mode)
|
||||
Java_java_io_RandomAccessFile_open0(JNIEnv *env,
|
||||
jobject this, jstring path, jint mode)
|
||||
{
|
||||
int flags = 0;
|
||||
if (mode & java_io_RandomAccessFile_O_RDONLY)
|
||||
|
@ -53,8 +53,8 @@ Java_java_io_FileOutputStream_initIDs(JNIEnv *env, jclass fdClass) {
|
||||
*/
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_java_io_FileOutputStream_open(JNIEnv *env, jobject this,
|
||||
jstring path, jboolean append) {
|
||||
Java_java_io_FileOutputStream_open0(JNIEnv *env, jobject this,
|
||||
jstring path, jboolean append) {
|
||||
fileOpen(env, this, path, fos_fd,
|
||||
O_WRONLY | O_CREAT | (append ? O_APPEND : O_TRUNC));
|
||||
}
|
||||
|
@ -54,8 +54,8 @@ Java_java_io_FileOutputStream_initIDs(JNIEnv *env, jclass fosClass) {
|
||||
*/
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_java_io_FileOutputStream_open(JNIEnv *env, jobject this,
|
||||
jstring path, jboolean append) {
|
||||
Java_java_io_FileOutputStream_open0(JNIEnv *env, jobject this,
|
||||
jstring path, jboolean append) {
|
||||
fileOpen(env, this, path, fos_fd,
|
||||
O_WRONLY | O_CREAT | (append ? O_APPEND : O_TRUNC));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user