hg: lambda/lambda/jdk: Add BufferedReader.lines
Zhong Yu
zhong.j.yu at gmail.com
Sun Nov 11 19:23:44 PST 2012
On Sun, Nov 11, 2012 at 5:35 PM, Ricky Clarkson
<ricky.clarkson at gmail.com> wrote:
> BufferedReader.lines() seems like the kind of method likely to cause
> resource leaks; if I use it and create a Stream<String> and then return
> that to my caller, I can't close the BufferedReader in the same place I
> create it, and my caller cannot close the BufferedReader either.
Maybe you can return a stream + a postmortem action which the caller
must invoke after it's absolutely sure that the stream is no longer
used.
public ToClose<Stream<String>> foo(){ .... }
public interface ToClose<T> extends AutoCloseable
T value();
void close();
It sucks, of course.
>
> On Sun, Nov 11, 2012 at 8:24 PM, Arne Siegel
> <v.a.ammodytes at googlemail.com>wrote:
>
>> Hi Brian,
>>
>> nice utility function, though I don't think you got the if statement in
>> next() right.
>>
>> @Override
>> public String next() {
>> if (nextLine == null || hasNext()) {
>> try {
>> return nextLine;
>> ...
>>
>> Better keep it simple:
>> ...
>> if (hasNext()) {
>> ...
>>
>> Arne Siegel
>>
>>
>> On 11 Nov 2012 at 22:50, brian.goetz at oracle.com wrote:
>>
>> > Changeset: 94d64473e8e6
>> > Author: briangoetz
>> > Date: 2012-11-11 17:44 -0500
>> > URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/94d64473e8e6
>> >
>> > Add BufferedReader.lines
>> >
>> > ! src/share/classes/java/io/BufferedReader.java
>> > ! src/share/classes/java/io/Reader.java
>> > + src/share/classes/java/io/UncheckedIOException.java
>> >
>> >
>>
>>
>>
>>
>
More information about the lambda-dev
mailing list