> On Jul 23, 2019, at 11:58 PM, Alan Bateman <alan.bate...@oracle.com> wrote:
> 
> On 23/07/2019 17:41, Brian Burkhalter wrote:
>> :
>> 
>> Here is an update which accounts for the foregoing comments.
>> 
>> http://cr.openjdk.java.net/~bpb/8187898/webrev-alt.02/ 
>> <http://cr.openjdk.java.net/~bpb/8187898/webrev-alt.02/>
>> 
> I looked at this version, and webrev-alt.03, but I think PS.write(byte[]) 
> will need further word smiting to properly explain the confusion on using 
> PrintStream vs. sub-classes of PrintStream that override this method (the 
> former does not throw IOE, the latter may). So I think the @apiNote will be 
> expanded further and the recommendation to use writeBytes(byte[]) or 
> write(byte[],0,len) instead should be dialed up. The @implSpec also needs to 
> be expanded as it doesn't make it clear that the default implementation (by 
> way of invoking super.write(byte[],int,int)) does not throw IOE. I'm also 
> wondering if PS.write(byte[]) should be deprecated. Hard to know how much 
> time to spend on this issue as it has existed since JDK 1.0.

Before addressing any of the above I wanted to note that in the fix for a very 
similar issue [1], where we added writeBytes(byte[]) to ByteArrayOutputStream, 
we did not do anything to its write(byte[]) method, i.e., it still does not 
override write(byte[]). I wonder whether doing the same here might simplify 
things.

If we are going to keep the write(byte[]) override, then perhaps it would be 
better to implement it to call out.write(buf,0,buf.length) directly.

Thanks,

Brian

[1] https://bugs.openjdk.java.net/browse/JDK-8180410

Reply via email to