On Tue, 19 Jan 2021 07:22:49 GMT, Philippe Marschall <github.com+471021+marsch...@openjdk.org> wrote:
>> src/java.base/share/classes/java/io/Reader.java line 207: >> >>> 205: target.put(cbuf, 0, n); >>> 206: nread += n; >>> 207: remaining -= n; >> >> Wouldn't there be a possibility for target.put(cbuf, 0, n) to throw >> BufferOverflowException ? >> For example: >> - there's room (remaining) for TRANSFER_BUFFER_SIZE + 1 characters in target >> - cbuff is sized to TRANSFER_BUFFER_SIZE >> - 1st iteration of do loop transfers TRANSFER_BUFFER_SIZE charasters >> (remaining == 1) >> - 2nd iteration reads > 1 (up to TRANSFER_BUFFER_SIZE) characters >> - target.put throws BufferOverflowException >> >> You have to limit the amount read in each iteration to be >> Math.min(remaining, cbuf.length) > > You're correct. I need to expand the unit tests. Fixed ------------- PR: https://git.openjdk.java.net/jdk/pull/1915