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]

Reply via email to