Use something with reference counting - Lucene in action second
edition has a searcher manager class  which I think might be available
standalone.  Or a couple of low-tech alternatives: instead of closing
the old searcher, move it out of the way and keep a reference to it
and close it after n seconds or searches or whatever.  Or catch the
closed Exception and rerun the query with the up to date searcher.


--
Ian.


On Thu, Jan 13, 2011 at 8:21 PM, Paul Taylor <paul_t...@fastmail.fm> wrote:
> As recommended, I use just one Index Searcher on my multithreaded GUI app
> using a singleton pattern
> If data is modified in the index I then close the reader and searcher, and
> they will be recreate on next call to getInstance() but Ive hit a problem
> whereby one thread was closing a searcher, another thread already the
> searcher open but when came to use it gave exception 'the IndexReader is
> closed'
>
> I obviously dont want access to the searcher to be synchronized as it is
> designed to work multithreaded, so how should I close it safetly, i.e close
> if no current references to it.
>
> Paul

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to