diff options
Diffstat (limited to 'java/jdk16/files/patch-j2se::nio::ch::FileChannelImpl.c')
-rw-r--r-- | java/jdk16/files/patch-j2se::nio::ch::FileChannelImpl.c | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/java/jdk16/files/patch-j2se::nio::ch::FileChannelImpl.c b/java/jdk16/files/patch-j2se::nio::ch::FileChannelImpl.c deleted file mode 100644 index 8dea374d17f3..000000000000 --- a/java/jdk16/files/patch-j2se::nio::ch::FileChannelImpl.c +++ /dev/null @@ -1,38 +0,0 @@ -$FreeBSD$ - ---- ../../j2se/src/solaris/native/sun/nio/ch/FileChannelImpl.c.orig Fri Jul 7 10:47:18 2006 -+++ ../../j2se/src/solaris/native/sun/nio/ch/FileChannelImpl.c Fri Jul 7 14:48:06 2006 -@@ -273,14 +273,28 @@ - free(buf); - - /* -- * XXXBSD: there're potential problems with NBIO fd's. Check it. -+ * Similar to solaris if we've transferred any data return -+ * the number of bytes and ignore any error -+ */ -+ if (offset - (off_t)position > 0) -+ return (offset - (off_t)position); -+ -+ /* -+ * Deal with NBIO EAGAIN & EINTR the same as solaris. - */ - if (r == -1 || w == -1) { -- fprintf(stderr, "%d %d %d %d %d\n", srcFD, dstFD, r, w, errno); -- JNU_ThrowIOExceptionWithLastError(env, "Transfer failed"); -- return IOS_THROWN; -+ switch (errno) { -+ case EAGAIN: -+ return IOS_UNAVAILABLE; -+ case EINTR: -+ return IOS_INTERRUPTED; -+ default: -+ JNU_ThrowIOExceptionWithLastError(env, "Transfer failed"); -+ return IOS_THROWN; -+ } - } -- return (offset - (off_t)position); -+ -+ return (0); - #endif - } - |