On Dec 8, 2017, at 5:06 PM, Sergey Bylokhov <sergey.bylok...@oracle.com> wrote:
> On 08/12/2017 16:49, Brian Burkhalter wrote: >> I agree it looks strange but it is intentional as it matches the existing >> InputStream.read(byte[],int,in) [1]. (I will remove line 167 as part of this >> patch.) Note that the IOE for the stream being closed would not be thrown in >> the current code until line 173. > > Yes it is match the behavior, but both have a different specifications: > In the old methods there is a notion: "<p> If <code>len</code> is zero, then > no bytes are read and <code>0</code> is returned;" but in the new method we > have only one strong statement: "After the stream has been closed, these > methods all throw {@code IOException}." Indeed you are correct. As we are trying to match the behavior I think the spec will need to be tweaked a little. The problem is that there is not a method-by-method specification in this case. This will need to be reexamined. Thanks, Brian