Please note the following minor discrepancy:
http://download.oracle.com/javase/7/docs/api/java/lang/Object.html#finalize%28%29
Any exception thrown by the finalize method causes the finalization of this object to be *halted*, but is otherwise ignored.
JLS 12.6:
If an uncaught exception is thrown during the finalization, the exception is ignored and finalization of that object *terminates*.
http://download.oracle.com/javase/7/docs/api/java/lang/Object.html#finalize%28%29
Any exception thrown by the finalize method causes the finalization of this object to be *halted*, but is otherwise ignored.
JLS 12.6:
If an uncaught exception is thrown during the finalization, the exception is ignored and finalization of that object *terminates*.