[ http://issues.apache.org/jira/browse/LUCENE-129?page=comments#action_12357858 ]
Esmond Pitt commented on LUCENE-129: ------------------------------------ Apparently I haven't made myself clear. It is essential that any finalizer calls super.finalize() regardless of any exceptions it may encounter. The canonical form shown is one way of achieving this: another is finally { super.finalize(); }. The finalizers in the classes named do not conform to either pattern and hence whatever their base classes finalizers may do is not necessarily being done. > Finalizers are non-canonical > ---------------------------- > > Key: LUCENE-129 > URL: http://issues.apache.org/jira/browse/LUCENE-129 > Project: Lucene - Java > Type: Bug > Components: Other > Versions: unspecified > Environment: Operating System: other > Platform: All > Reporter: Esmond Pitt > Assignee: Lucene Developers > Priority: Minor > > The canonical form of a Java finalizer is: > protected void finalize() throws Throwable() > { > try > { > // ... local code to finalize this class > } > catch (Throwable t) > { > } > super.finalize(); // finalize base class. > } > The finalizers in IndexReader, IndexWriter, and FSDirectory don't conform. > This > is probably minor or null in effect, but the principle is important. > As a matter of fact FSDirectory.finaliz() is entirely redundant and could be > removed, as it doesn't do anything that RandomAccessFile.finalize would do > automatically. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]