RFR: 8017513: Support for closeable streams
Alan Bateman
Alan.Bateman at oracle.com
Wed Aug 28 23:58:01 PDT 2013
On 28/08/2013 22:10, Henry Jen wrote:
> Hi,
>
> Please review the webrev at
> http://cr.openjdk.java.net/~henryjen/ccc/8017513/1/webrev/
>
> Based on the feedback/discussion from last time, the EG decided to
> weaken AutoCloseable contract(see RFR 8022176[1]), and have Stream
> extend AutoCloseable.
>
> A quick briefing of the webrev,
> - Remove CloseableStream and DelegatingStream, which was previous used
> to implement close of resource
> - BaseStream extends AutoCloseable, thus all Stream implementation will
> implements close()
> - onClose() method allows to chain up close handlers which are invoked
> by close()
> - Change use of CloseableStream to Stream, mainly java.nio.file.Files
> and various tests.
>
> The specdiff is also available at
> http://cr.openjdk.java.net/~henryjen/ccc/8017513/1/specdiff/overview-summary.html
>
> Cheers,
> Henry
>
> [1]
> http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-August/020236.html
>
In Files then you've expanded the wildcard on the imports but left
java.nio.file.attribute.*; (this seems a long list, I think one or two
may be javadoc references only).
I think I mentioned this previously but in the Files.list/walk/etc.
methods where you close the resource (on error|runtimeexception) then
it's probably best to catch the IOException and add it as a suppressed
exception.
Minor nits in Files but all the <p> usages after a space before the
wording. Also can you combine L123-124 on the same line so that the
formatting is locally consistent.
StreamCloseTest.java has the GPL+CP copyright, I assume you'll replace
that before pushing.
Otherwise looks good to me.
-Alan.
More information about the lambda-dev
mailing list