[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