Feedback is on webrev.02 
http://cr.openjdk.java.net/~chegar/7000511/webrev.02/webrev/ :

* PrintStream

- .flush(), close(), most println() methods  synchronize on this for their 
entire implementation. They could just be made synchronized methods.

- The javadoc for append(CharSequence,int,int) for the csq==null condition 
seems misleading as start and end are considered.

* Formatter

- The zero params constructor could just call this((Apppendable) null). The 
advantage is that the StringBuilder is only constructed in one place.

- The Formatter(Locale) constructor could just call this(l, (Apppendable) 
null). Same reason.


On Dec 14 2010, at 07:07 , Chris Hegarty wrote:

> Failing java.io.PrintStream, java.io.PrintWriter, java.util.Scanner, and 
> java.util.Formatter multi-arg constructors that take a java.io.File or String 
> filename (as well as one or more additional args) opens a FileIn/OutputStream 
> to the given File/filename. If one of the other given args causes the 
> constructor to fail ( null or unsupported charset for example ) the 
> FileIn/OutputStream is never closed, and the application does not have a 
> reference to it. You rely on the finalizer to close the stream.
> 
> This is most serious on Windows because you cannot remove a file if there is 
> an open handle to it.
> 
> I also cleaned up an existing regression test that fails in samevm mode 
> (partly) because of this. And removed another excluded test from the list 
> since its bug was fixed some time ago.
> 
> Webrev:
>  http://cr.openjdk.java.net/~chegar/7000511/webrev.00/webrev/
> 
> -Chris.

Reply via email to