From 265702db433a2157ff433d3062b8065d07e29b2f Mon Sep 17 00:00:00 2001 From: mkoch Date: Fri, 19 Dec 2003 19:06:34 +0000 Subject: 2003-12-19 Michael Koch * gnu/java/nio/ChannelInputStream.java: New file. * java/nio/channels/Channels.java (newInputStream): Implemented. * java/nio/channels/FileChannelImpl.java (readImpl): Only put data into buffer if something was read. * Makefile.am (ordinary_java_source_files): Added gnu/java/nio/ChannelInputStream.java. * Makefile.in: Regenerated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74842 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/java/nio/channels/Channels.java | 5 +++-- libjava/java/nio/channels/FileChannelImpl.java | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'libjava/java/nio') diff --git a/libjava/java/nio/channels/Channels.java b/libjava/java/nio/channels/Channels.java index f8358ae9c04..d70410c6af3 100644 --- a/libjava/java/nio/channels/Channels.java +++ b/libjava/java/nio/channels/Channels.java @@ -37,6 +37,7 @@ exception statement from your version. */ package java.nio.channels; +import gnu.java.nio.ChannelInputStream; import gnu.java.nio.InputStreamChannel; import gnu.java.nio.OutputStreamChannel; import java.io.InputStream; @@ -55,9 +56,9 @@ public final class Channels /** * Constructs a stream that reads bytes from the given channel. */ - public static InputStream newInputStream (ReadableByteChannel ch) + public static InputStream newInputStream(ReadableByteChannel ch) { - throw new Error ("not implemented"); + return new ChannelInputStream(ch); } /** diff --git a/libjava/java/nio/channels/FileChannelImpl.java b/libjava/java/nio/channels/FileChannelImpl.java index a14a7e1dd43..89ac11ad514 100644 --- a/libjava/java/nio/channels/FileChannelImpl.java +++ b/libjava/java/nio/channels/FileChannelImpl.java @@ -169,7 +169,9 @@ public class FileChannelImpl extends FileChannel byte[] buffer = new byte [dst.remaining ()]; result = implRead (buffer, 0, buffer.length); - dst.put (buffer, 0, result); + + if (result > 0) + dst.put (buffer, 0, result); return result; } -- cgit v1.2.3