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