changeset 9933:68dc2c198948

8055785: Modifications of I/O methods for instrumentation purposes Summary: Wrap some native methods in Java methods. Reviewed-by: rriggs
author bpb
date Fri, 22 Aug 2014 13:06:50 -0700
parents 5bfc9fff4704
children be8eccf988cc
files make/mapfiles/libjava/mapfile-vers make/mapfiles/libjava/reorder-sparc make/mapfiles/libjava/reorder-sparcv9 make/mapfiles/libjava/reorder-x86 src/share/classes/java/io/FileInputStream.java src/share/classes/java/io/FileOutputStream.java src/share/classes/java/io/RandomAccessFile.java src/share/classes/java/net/SocketInputStream.java src/share/native/java/io/FileInputStream.c src/share/native/java/io/RandomAccessFile.c src/solaris/native/java/io/FileOutputStream_md.c src/windows/native/java/io/FileOutputStream_md.c
diffstat 12 files changed, 76 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/make/mapfiles/libjava/mapfile-vers	Tue Aug 12 14:38:38 2014 +0400
+++ b/make/mapfiles/libjava/mapfile-vers	Fri Aug 22 13:06:50 2014 -0700
@@ -78,13 +78,13 @@
 		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 @@
 		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;
--- a/make/mapfiles/libjava/reorder-sparc	Tue Aug 12 14:38:38 2014 +0400
+++ b/make/mapfiles/libjava/reorder-sparc	Fri Aug 22 13:06:50 2014 -0700
@@ -44,7 +44,7 @@
 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;
--- a/make/mapfiles/libjava/reorder-sparcv9	Tue Aug 12 14:38:38 2014 +0400
+++ b/make/mapfiles/libjava/reorder-sparcv9	Fri Aug 22 13:06:50 2014 -0700
@@ -47,7 +47,7 @@
 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;
--- a/make/mapfiles/libjava/reorder-x86	Tue Aug 12 14:38:38 2014 +0400
+++ b/make/mapfiles/libjava/reorder-x86	Fri Aug 22 13:06:50 2014 -0700
@@ -57,7 +57,7 @@
 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_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;
--- a/src/share/classes/java/io/FileInputStream.java	Tue Aug 12 14:38:38 2014 +0400
+++ b/src/share/classes/java/io/FileInputStream.java	Fri Aug 22 13:06:50 2014 -0700
@@ -184,7 +184,16 @@
      * 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
--- a/src/share/classes/java/io/FileOutputStream.java	Tue Aug 12 14:38:38 2014 +0400
+++ b/src/share/classes/java/io/FileOutputStream.java	Fri Aug 22 13:06:50 2014 -0700
@@ -256,9 +256,20 @@
      * @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.
      *
--- a/src/share/classes/java/io/RandomAccessFile.java	Tue Aug 12 14:38:38 2014 +0400
+++ b/src/share/classes/java/io/RandomAccessFile.java	Fri Aug 22 13:06:50 2014 -0700
@@ -296,9 +296,26 @@
      * @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
 
     /**
--- a/src/share/classes/java/net/SocketInputStream.java	Tue Aug 12 14:38:38 2014 +0400
+++ b/src/share/classes/java/net/SocketInputStream.java	Fri Aug 22 13:06:50 2014 -0700
@@ -96,6 +96,26 @@
                                    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 @@
         // 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 @@
             impl.setConnectionResetPending();
             impl.acquireFD();
             try {
-                n = socketRead0(fd, b, off, length, timeout);
+                n = socketRead(fd, b, off, length, timeout);
                 if (n > 0) {
                     return n;
                 }
--- a/src/share/native/java/io/FileInputStream.c	Tue Aug 12 14:38:38 2014 +0400
+++ b/src/share/native/java/io/FileInputStream.c	Fri Aug 22 13:06:50 2014 -0700
@@ -57,7 +57,7 @@
  */
 
 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);
 }
 
--- a/src/share/native/java/io/RandomAccessFile.c	Tue Aug 12 14:38:38 2014 +0400
+++ b/src/share/native/java/io/RandomAccessFile.c	Fri Aug 22 13:06:50 2014 -0700
@@ -47,8 +47,8 @@
 
 
 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)
--- a/src/solaris/native/java/io/FileOutputStream_md.c	Tue Aug 12 14:38:38 2014 +0400
+++ b/src/solaris/native/java/io/FileOutputStream_md.c	Fri Aug 22 13:06:50 2014 -0700
@@ -53,8 +53,8 @@
  */
 
 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));
 }
--- a/src/windows/native/java/io/FileOutputStream_md.c	Tue Aug 12 14:38:38 2014 +0400
+++ b/src/windows/native/java/io/FileOutputStream_md.c	Fri Aug 22 13:06:50 2014 -0700
@@ -54,8 +54,8 @@
  */
 
 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));
 }