Hi! The proposed changes are quite minor like: - adding a check for negative/non-positive argument; - flushing buffer instead of doing a full flush; - making some fields private.
ChangeLog entries: * java/io/BufferedInputStream.java: (BufferedInputStream(InputStream,int)): If "in" argument is null then leave buf value null (to match the RI). * java/io/PushbackInputStream.java: (PushbackInputStream(InputStream,int)): Likewise. * java/io/BufferedInputStream.java: (available()): Check stream is not closed. (skip(long)): Likewise. (close()): Don't call super.close() if the stream is already closed. * java/io/PushbackInputStream.java: (close()): Likewise. * java/io/BufferedInputStream.java: (reset()): Remove the trailing dot character for exception messages. (refill()): Likewise. * java/io/BufferedOutputStream.java: (BufferedOutputStream(OutputStream,int)): Throw IllegalArgumentException is non-positive "size" value; document it. * java/io/PushbackInputStream.java: (PushbackInputStream(OutputStream,int)): Likewise. * java/io/BufferedWriter.java: (BufferedWriter(Writer,int)): Likewise. * java/io/BufferedOutputStream.java: (flushBuffer()): New private method (move the code from flush()). (flush()): Call flushBuffer(). (write()): Call flushBuffer() instead of flush(). (write(byte[], int, int)): Likewise. (write()): Remove unnecessary "&" operation. * java/io/BufferedWriter.java: (out): Make the field final. * java/io/RandomAccessFile.java: (ch): Likewise. (fd): Likewise. (out): Likewise. (in): Likewise. * java/io/BufferedWriter.java: (buffer): Make the field private. (count): Likewise. (BufferedWriter(Writer,int)): Initialize buffer to null if out is null indicating that the stream is already closed (the same as in the RI). (close()): Put localFlush() call into the try clause and out.close() into finally (the same as in the RI); don't call out.close() if out is null. * java/io/FilterOutputStream.java: (close()): Ignore exceptions in flush() (the same as in the RI). * java/io/Writer.java: (append(CharSequence,int,int)): Call subSequence() also for "null" string. * java/io/PushbackInputStream.java: (ensureOpen()): New private method. (available()): Call ensureOpen(). (read()): Likewise. (read(byte[],int,int)): Likewise. (unread(int)): Likewise. (skip(long)): Likewise. * java/io/RandomAccessFile.java: (getFD()): Don't initialize fd (as it is already set in the constructor). (setLength(long)): Call length() only once; don't call seek() if the file pointer is guaranteed to be in the requested position; call a "restore" seek() in a finally clause. * java/io/Reader.java: (skip(long)): Throw IllegalArgumentException if the argument is negative; document it. PS. I again refer to the RI in some places - I'll provide the necessary tests later (when someone will review this patch). Regards.
classpath-ivmai-16.diff
Description: Binary data