aboutsummaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
authorMichael Koch <konqueror@gmx.de>2003-12-19 19:06:34 +0000
committerMichael Koch <mkoch@gcc.gnu.org>2003-12-19 19:06:34 +0000
commit26392535a78d2e396cff24391be6f4920c632e2b (patch)
tree54f8b26f344082df0e145f4f3cb044e281a93bf5 /libjava/java
parentcc16f8b948be00bdbac8af00a388a25a53da901f (diff)
downloadgcc-26392535a78d2e396cff24391be6f4920c632e2b.zip
gcc-26392535a78d2e396cff24391be6f4920c632e2b.tar.gz
gcc-26392535a78d2e396cff24391be6f4920c632e2b.tar.bz2
ChannelInputStream.java: New file.
2003-12-19 Michael Koch <konqueror@gmx.de> * 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. From-SVN: r74842
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/nio/channels/Channels.java5
-rw-r--r--libjava/java/nio/channels/FileChannelImpl.java4
2 files changed, 6 insertions, 3 deletions
diff --git a/libjava/java/nio/channels/Channels.java b/libjava/java/nio/channels/Channels.java
index f8358ae..d70410c 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 a14a7e1..89ac11a 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;
}