Hi Otis,
I tried to print the stack but there was no exception. I think I found the
cause for the exception. The addDocument was being called by different
threads simultaneously and so when a second thread was trying to access the
index, it was already locked. So I made the method addDocument synchronized
and that fixed the problem.
Thanks for your quick response,
Harini
----- Original Message -----
From: "Otis Gospodnetic" <[EMAIL PROTECTED]>
To: <java-user@lucene.apache.org>
Sent: Monday, July 18, 2005 10:03 AM
Subject: Re: Index locked exception while updating index
Harini,
You are catching IOException in the finally block, but you are not even
printing out the exception stack trace. Perhaps you are not able to
close your IndexWriter for some reason.
Otis
--- Harini Raghavan <[EMAIL PROTECTED]> wrote:
Hi All,
I am quite new to Lucene and I have problem with locking. I have a
MessageDrivenBean that sends messages to my Lucene indexer whenever
there is
a new database update. The indexer updates the index incrementally .
Below
is the code fragment in the indexer method that gets invoked by the
MDB
listener.
public void addDocument(Document doc) {
String indexLoc = luceneConfig.getIndexDir();
IndexWriter writer = getIndexWriter(indexLoc, false);
try{
writer.addDocument(doc);
} catch(IOException e) {
logger.error("IOException occurred in addDocument()");
} catch(Exception e) {
logger.error("Exception occurred in addDocument()");
} finally {
try {
writer.close();
} catch(IOException e){
}
}
The incremental update works fine twice and the third time it throws
the
following exception :
java.io.IOException: Index locked for write:
[EMAIL PROTECTED]:\tmpIndex\write.lock
at org.apache.lucene.index.IndexWriter.<init>(Unknown Source)
at org.apache.lucene.index.IndexWriter.<init>(Unknown Source)
at lucene.LuceneActions.getIndexWriter(LuceneActions.java:151)
at lucene.LuceneActions.addDocument(LuceneActions.java:43)
at index.IndexServiceImpl.addData(IndexServiceImpl.java:63)
at index.IndexServiceImpl.addToIndex(IndexServiceImpl.java:28)
The Index Writer is created every time and also closed in the finally
block.
Should I be doing something else?
Any help would be appreciated.
Thanks,
Harini
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]