summaryrefslogtreecommitdiffstats
path: root/libjava/java
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-02-11 20:55:26 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-02-11 20:55:26 +0000
commit48a2b4360d46eac68b4cacbbb35678ad39ea107a (patch)
tree196bbfac0647b20519f37aa802fdc04deb3660f1 /libjava/java
parent6b5183e939485e1bb058e35844d6289cbba57565 (diff)
downloadppe42-gcc-48a2b4360d46eac68b4cacbbb35678ad39ea107a.tar.gz
ppe42-gcc-48a2b4360d46eac68b4cacbbb35678ad39ea107a.zip
2003-02-11 Ranjit Mathew <rmathew@hotmail.com>
* java/io/natFileDescriptorWin32.cc (java::io::FileDescriptor::read): Return -1 (EOF) if ReadFile( ) returns with Win32 error code ERROR_BROKEN_PIPE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62722 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/io/natFileDescriptorWin32.cc19
1 files changed, 16 insertions, 3 deletions
diff --git a/libjava/java/io/natFileDescriptorWin32.cc b/libjava/java/io/natFileDescriptorWin32.cc
index 4b157f7042c..87f94e81222 100644
--- a/libjava/java/io/natFileDescriptorWin32.cc
+++ b/libjava/java/io/natFileDescriptorWin32.cc
@@ -1,6 +1,7 @@
// natFileDescriptorWin32.cc - Native part of FileDescriptor class.
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software
+ Foundation, Inc.
This file is part of libgcj.
@@ -288,7 +289,13 @@ java::io::FileDescriptor::read(void)
DWORD read;
if (! ReadFile ((HANDLE)fd, &buf, 1, &read, NULL))
- throw new IOException (JvNewStringLatin1 (winerr ()));
+ {
+ if (GetLastError () == ERROR_BROKEN_PIPE)
+ return -1;
+ else
+ throw new IOException (JvNewStringLatin1 (winerr ()));
+ }
+
if (! read)
return -1;
else
@@ -313,9 +320,15 @@ java::io::FileDescriptor::read(jbyteArray buffer, jint offset, jint count)
DWORD read;
if (! ReadFile((HANDLE)fd, bytes, count, &read, NULL))
- throw new IOException (JvNewStringLatin1 (winerr ()));
+ {
+ if (GetLastError () == ERROR_BROKEN_PIPE)
+ return -1;
+ else
+ throw new IOException (JvNewStringLatin1 (winerr ()));
+ }
if (read == 0) return -1;
+
return (jint)read;
}
OpenPOWER on IntegriCloud