You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucenenet.apache.org by "michael herndon (JIRA)" <ji...@apache.org> on 2011/09/15 13:56:08 UTC

[Lucene.Net] [jira] [Commented] (LUCENENET-443) SpellChecker finaliser calls close regardless of if closed already

    [ https://issues.apache.org/jira/browse/LUCENENET-443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13105288#comment-13105288 ] 

michael herndon commented on LUCENENET-443:
-------------------------------------------

Is there a good reason to bump IsClosed's access to public ?  The Close() method is being used as Dispose() would be.  

Most likely classes that implement Close because of the Closable interface will implement IDisposable instead in a future version. The shortest path to fixing the bug would be to amend the finalizer.  

> SpellChecker finaliser calls close regardless of if closed already
> ------------------------------------------------------------------
>
>                 Key: LUCENENET-443
>                 URL: https://issues.apache.org/jira/browse/LUCENENET-443
>             Project: Lucene.Net
>          Issue Type: Improvement
>          Components: Lucene.Net Contrib
>    Affects Versions: Lucene.Net 2.9.2
>            Reporter: Stuart Robinson
>              Labels: lucene, spellcheck, spellchecker
>
> The SpellChecker Class currently has no publicly visible way of accessing the closed field. It also calls close in the finaliser killing the process it is in upon GC as this can throw an exceptin. I propose two changes:
> Change the already existing method "IsClosed()" to public:
>         public bool IsClosed()
>         {
>             return closed;
>         }
> and add a check on this in the finaliser:
>         ~SpellChecker()
>         {
>             if (!IsClosed())
>                 this.Close();
>         }
> Ideally this class should implement IDisposable but I think this would be a bigger job than this two line change.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira