[OpenJDK 2D-Dev] 8187898: PrintStream should override FilterOutputStream#write(byte[]) with a method that has no throws clause

David Holmes david.holmes at oracle.com
Wed Jul 24 02:00:44 UTC 2019


Sorry I was obviously missing the part of this thread where it was 
decided to not actually fix this as requested in the bug due to 
compatibility issues.

I agree with Brian that something must be added to the class-level 
javadoc explaining that due to a historical oversight there is one 
method that declares it throws IOException (and can actually throw it?).

I don't see why that method couldn't still honour the checkError 
protocol as well though.

David

On 24/07/2019 11:31 am, David Holmes wrote:
> Jumping in here as this change is starting to really confuse me ...
> 
> On 24/07/2019 2:41 am, Brian Burkhalter wrote:
>>
>>
>>> On Jul 23, 2019, at 8:27 AM, Brian Burkhalter 
>>> <brian.burkhalter at oracle.com> wrote:
>>>
>>>> On Jul 23, 2019, at 8:20 AM, Alan Bateman <Alan.Bateman at oracle.com 
>>>> <mailto:Alan.Bateman at oracle.com>> wrote:
>>>>
>>>> On 23/07/2019 16:08, Brian Burkhalter wrote:
>>>>>
>>>>> I don’t see what you mean.
>>>>>     @Override
>>>>>     public void write(byte buf[]) throws IOException {
>>>>>         super.write(buf);
>>>>>     }
>>>>> Should “trouble” be set and the IOE re-thrown?
>>>>>
>>>> super.write(byte[]) will invoke PrintStream overrides write(byte[], 
>>>> int, int) so IOE won't be thrown (and why the proposed change to the 
>>>> class description isn't right). The method description is probably 
>>>> the best place to describe the behavior.
>>
>> Here is an update which accounts for the foregoing comments.
>>
>> http://cr.openjdk.java.net/~bpb/8187898/webrev-alt.02/
> 
>   609     @Override
>   610     public void write(byte buf[]) throws IOException {
>   611         super.write(buf, 0, buf.length);
>   612     }
> 
> This is wrong! The whole point of this bug is to ensure that PrintStream 
> methods honour its contract of NEVER throwing IOException. I mean that 
> is what the bug synopsis and description are all about!
> 
> David
> -----
> 
>> Thanks,
>>
>> Brian
>>


More information about the core-libs-dev mailing list