I need a reviewer for a small change to remove a debug message that someone left when fixing a bug in the java.io implementation early in jdk7. The debug message is printed if closing a file fails (for example EIO because of a NFS stale handle). That change also added code to restore the file descriptor field but this isn't needed because the stream classes have a closed flag to ensure that they only attempt to close the underlying file descriptor once. Furthermore, if close fails then the state of the file descriptor is unspecified and so cannot be used again. The proposed patch is attached.

Thanks,
Alan.

diff --git a/src/solaris/native/java/io/io_util_md.c b/src/solaris/native/java/io/io_util_md.c
--- a/src/solaris/native/java/io/io_util_md.c
+++ b/src/solaris/native/java/io/io_util_md.c
@@ -83,8 +83,6 @@ fileClose(JNIEnv *env, jobject this, jfi
            close(devnull);
        }
    } else if (JVM_Close(fd) == -1) {
-            SET_FD(this, fd, fid); // restore fd
-            printf("JVM_Close returned -1\n");
-            JNU_ThrowIOExceptionWithLastError(env, "close failed");
+        JNU_ThrowIOExceptionWithLastError(env, "close failed");
    }
}
diff --git a/src/windows/native/java/io/io_util_md.c b/src/windows/native/java/io/io_util_md.c
--- a/src/windows/native/java/io/io_util_md.c
+++ b/src/windows/native/java/io/io_util_md.c
@@ -531,7 +531,6 @@ handleClose(JNIEnv *env, jobject this, j
    SET_FD(this, -1, fid);

    if (CloseHandle(h) == 0) { /* Returns zero on failure */
-        SET_FD(this, fd, fid); // restore fd
        JNU_ThrowIOExceptionWithLastError(env, "close failed");
    }
    return 0;

Reply via email to