diff options
Diffstat (limited to 'plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/buffer/Buffer.java')
-rw-r--r-- | plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/buffer/Buffer.java | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/buffer/Buffer.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/buffer/Buffer.java index c358b4ea68..b1493c6f25 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/buffer/Buffer.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/buffer/Buffer.java @@ -424,7 +424,10 @@ public class Buffer implements InternalBuffer { try { - socketChannel.read(buffer); + if (socketChannel.read(buffer) == -1) + { + throw new IOException("Channel has reached end-of-stream"); + } } catch (ClosedChannelException ex) { @@ -432,7 +435,9 @@ public class Buffer implements InternalBuffer } catch (IOException ex) { - throw new ClosedChannelException(); + ClosedChannelException exception = new ClosedChannelException(); + exception.initCause(ex); + throw exception; } } } |