From be454565bef7db066e0b660d900f7e722226f6d5 Mon Sep 17 00:00:00 2001 From: Bryce McKinlay Date: Mon, 19 Feb 2001 05:37:28 +0000 Subject: CharArrayReader.java (CharArrayReader): Throw IllegalArgumentException if constructor arguments are illegal. * java/io/CharArrayReader.java (CharArrayReader): Throw IllegalArgumentException if constructor arguments are illegal. (ready): Return false if no more characters can be read. * java/io/ByteArrayInputStream.java (ByteArrayInputStream): Likewise. From-SVN: r39876 --- libjava/java/io/ByteArrayInputStream.java | 7 +++---- libjava/java/io/CharArrayReader.java | 16 ++++++++++------ 2 files changed, 13 insertions(+), 10 deletions(-) (limited to 'libjava/java/io') diff --git a/libjava/java/io/ByteArrayInputStream.java b/libjava/java/io/ByteArrayInputStream.java index 30ba8d7..0d93393 100644 --- a/libjava/java/io/ByteArrayInputStream.java +++ b/libjava/java/io/ByteArrayInputStream.java @@ -40,6 +40,9 @@ public class ByteArrayInputStream extends InputStream public ByteArrayInputStream(byte[] buffer, int offset, int length) { + if (offset < 0 || length < 0 || offset > buffer.length) + throw new IllegalArgumentException(); + buf = buffer; count = offset + length; @@ -47,10 +50,6 @@ public class ByteArrayInputStream extends InputStream count = buf.length; pos = offset; - // TBD: What should we do if pos is neg. or > count? E.g. throw exc. or: - // if (pos < 0 || pos > count) - // pos = 0; - mark = pos; } diff --git a/libjava/java/io/CharArrayReader.java b/libjava/java/io/CharArrayReader.java index 0a77998..d67c7c7 100644 --- a/libjava/java/io/CharArrayReader.java +++ b/libjava/java/io/CharArrayReader.java @@ -41,17 +41,16 @@ public class CharArrayReader extends Reader public CharArrayReader(char[] buffer, int offset, int length) { super(); + if (offset < 0 || length < 0 || offset > buffer.length) + throw new IllegalArgumentException(); + buf = buffer; count = offset + length; if (count > buf.length) count = buf.length; - + pos = offset; - // TBD: What should we do if pos is neg. or > count? E.g. throw exc. or: - // if (pos < 0 || pos > count) - // pos = 0; - markedPos = pos; } @@ -116,12 +115,17 @@ public class CharArrayReader extends Reader } } + /** Return true if more characters are available to be read. + * + * @specnote The JDK 1.3 API docs are wrong here. This method will + * return false if there are no more characters available. + */ public boolean ready() throws IOException { if (buf == null) throw new IOException("Stream closed"); - return true; + return (pos < count); } public void reset() throws IOException -- cgit v1.1