On 08/17/2011 06:41 PM, Jing LV wrote:
Hi Alan,

Sorry for late reply, I somehow miss this mail. The patch seems perfect. Just a curious question about the fix in BufferedWriter:

-            try {
+            try (Writer w = out) {
                 flushBuffer();
             } finally {
-                out.close();
                 out = null;
                 cb = null;
             }

I see this is a java7 new feature (try-catch-resource), but it use a new variable.

Yes, you have to declare a new variable, you can't use an expression.

I am not very familiar with the new feature yet, so is this better than put out.close() in finally block?

see http://download.oracle.com/javase/7/docs/technotes/guides/language/try-with-resources.html the difference is the way the exception that is thrown by out.close() if fushBuffer()
also throws an exception is managed (see supressed exception)

And if we'd like to fix java6 as well, we may use finally? Not sure if the complied binary would be the same?

It will not be the same but jdk6 has no suppressed exception.

Rémi

Reply via email to