FilterOutputStream.close() throws exception from flush()

Alex Lam S.L. alexlamsl at gmail.com
Fri Feb 10 05:16:27 PST 2012


I think I have narrowed it down to this changeset:

http://hg.openjdk.java.net/hsx/hotspot-rt/jdk/rev/759aa847dcaf

7015589: (spec) BufferedWriter.close leaves stream open if close of
underlying Writer fails

Which no longer catches and ignores the exception thrown by flush():

try (OutputStream ostream = out) {
  flush();
}

To recover the previous behaviour, I think the following might just work:

try (OutputStream ostream = out) {
  flush();
} catch (IOException ignored) {
}


Regards,
Alex.



On Fri, Feb 10, 2012 at 1:09 PM, Alex Lam S.L. <alexlamsl at gmail.com> wrote:
> Hi there,
>
> I have some code which calls FilterOutputStream.close(), which calls
> the underlying OutputStream.flush() which throws IOException.
>
> With previous versions of JavaSE, close() returns successfully without
> any problems.
>
> Using JDK8-b24, I get an IOException which is propagated from flush().
>
> Is there any reason for this change in behaviour?
>
>
> Regards,
> Alex.


More information about the jdk8-dev mailing list