You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Rob Outar <ro...@ideorlando.org> on 2003/04/16 22:21:53 UTC

IndexReader In a MultiThreaded Env

Hi all,

	I think I tracked down what was a nasty bug.  I have 2 threads, my program
works in the following way, the first time a user tries to access the index,
if an index does not exists then one is built, otherwise if one is there it
simply uses it.

	Thread 1 comes along and he tries to query, no index exists
(ndexReader.indexExists(File directory) method) so one is now being built.

	Thread 2 comes along he checks if an index exists via the
IndexReader.indexExists(File directory) method <-- it returns true since all
the method does is File.exists().  Since thread one caused an index to be
built Thread 2 thinks that it is a usable index and tries to run queries and
modify the index -- all of which fail because the index is still being
built.

	Is there any method that checks more than if the index directory simply
exists?  Is there way to make sure the index is valid before using it?

	Let me know.

Rob


---------------------------------------------------------------------
To unsubscribe, e-mail: lucene-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: lucene-user-help@jakarta.apache.org


Re: IndexReader In a MultiThreaded Env

Posted by Otis Gospodnetic <ot...@yahoo.com>.
I don't think so.  However, this sounds like a scenario in which you
should make your 2 threads communicate.  Either through JVM or even
something as simple as "I'm done building the index" file.

Otis

--- Rob Outar <ro...@ideorlando.org> wrote:
> Hi all,
> 
> 	I think I tracked down what was a nasty bug.  I have 2 threads, my
> program
> works in the following way, the first time a user tries to access the
> index,
> if an index does not exists then one is built, otherwise if one is
> there it
> simply uses it.
> 
> 	Thread 1 comes along and he tries to query, no index exists
> (ndexReader.indexExists(File directory) method) so one is now being
> built.
> 
> 	Thread 2 comes along he checks if an index exists via the
> IndexReader.indexExists(File directory) method <-- it returns true
> since all
> the method does is File.exists().  Since thread one caused an index
> to be
> built Thread 2 thinks that it is a usable index and tries to run
> queries and
> modify the index -- all of which fail because the index is still
> being
> built.
> 
> 	Is there any method that checks more than if the index directory
> simply
> exists?  Is there way to make sure the index is valid before using
> it?
> 
> 	Let me know.
> 
> Rob
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: lucene-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: lucene-user-help@jakarta.apache.org
> 


__________________________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo
http://search.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: lucene-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: lucene-user-help@jakarta.apache.org