it seems that close reader not release write lock,  test lock release before
you add document

2008/1/18, Kevin Dewi <[EMAIL PROTECTED]>:
>
> Hello,
>
> I have a problem with this code (updating a lucene index by delete and
> adding documents):
>
>
> IndexReader reader = IndexReader.open(directory);
> while (i.hasNext()) {
>        reader.deleteDocuments(i.next());
> }
> reader.close();
>
> ...
>
> IndexWriter writer = new IndexWriter(directory,
>                new GermanAnalyzer(), create);
> while (i2.hasNext()) {
>        writer.addDocument(i2.next());
> }
>
> By creating the IndexWriter I became this exception on Linux (ubuntu
> dapper):
> java.io.IOException: Lock obtain timed out: Lock@/home/picard/develop/
> apache-tomcat-6.0.14/temp/lucene-1763c549e0e952256392217dac3f3bdb-
> write.lock
>         at org.apache.lucene.store.Lock.obtain(Lock.java:56)
>         at
> org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:254)
>         at
> org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:244)
>         at
> de.gesichterparty.DatabaseManager.processQueue(DatabaseManager.java:345)
>         at de.gesichterparty.LuceneServlet.run(LuceneServlet.java:140)
>         at java.lang.Thread.run(Thread.java:595)
> java.io.FileNotFoundException: /home/picard/develop/apache-
> tomcat-6.0.14/webapps/Lucene/WEB-INF/databases/user/segments (No such
> file or directory)
>         at java.io.RandomAccessFile.open(Native Method)
>         at java.io.RandomAccessFile.<init>(RandomAccessFile.java:212)
>         at org.apache.lucene.store.FSIndexInput
> $Descriptor.<init>(FSDirectory.java:430)
>         at
> org.apache.lucene.store.FSIndexInput.<init>(FSDirectory.java:439)
>         at
> org.apache.lucene.store.FSDirectory.openInput(FSDirectory.java:329)
>         at
> org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:45)
>         at org.apache.lucene.index.IndexReader
> $1.doBody(IndexReader.java:146)
>         at org.apache.lucene.store.Lock$With.run(Lock.java:99)
>         at org.apache.lucene.index.IndexReader.open(IndexReader.java:
> 141)
>         at org.apache.lucene.index.IndexReader.open(IndexReader.java:
> 136)
>         at
> org.apache.lucene.search.IndexSearcher.<init>(IndexSearcher.java:47)
>         at
> de.gesichterparty.DatabaseManager.processQueue(DatabaseManager.java:374)
>         at de.gesichterparty.LuceneServlet.run(LuceneServlet.java:140)
>         at java.lang.Thread.run(Thread.java:595)
>
>
> On Mac OS X Leopard this code works fine.
>
> Thanks
> Kevin
>
>

Reply via email to