Christian created LUCENE-5058:
---------------------------------
Summary: IOException when trying to delete data from index
Key: LUCENE-5058
URL: https://issues.apache.org/jira/browse/LUCENE-5058
Project: Lucene - Core
Issue Type: Bug
Components: core/index
Affects Versions: 4.3
Environment: Windows 7
Reporter: Christian
I have a small test prog which inserts some data in an index and after that,
opens a searcher from the uncommitted index to search on and output the result
to std.out. The Searcher is immediately closed. Then, i call deleteAll() on the
index but it encounters an IOException stating that the index files could not
be removed. I have investigated with Sysinternals and it says the file is still
locked despite the fact that the index searcher is correctly closed. If i call
deleteAll() without opening a searcher before it just works fine as expected.
This seems to be a bug in Lucene, since closing the index searcher makes it
impossible to delete the index.
Here is the source code:
<code>
public class LuceneTest {
private Directory dir;
private IndexWriter writer;
public void addDocs(long value) throws IOException {
Document doc = new Document();
doc.add(new LongField("ID", value, Field.Store.YES));
writer.deleteDocuments(new Term("ID", "1"));
writer.addDocument(doc);
}
public void search() throws IOException {
IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(writer,
false));
TopDocs results = searcher.search(NumericRangeQuery.newLongRange("ID",
1L, 2L, true, true), 1);
for ( ScoreDoc sc : results.scoreDocs) {
System.out.println(searcher.doc(sc.doc));
}
searcher.getIndexReader().close();
}
public static void main(String[] args) throws IOException {
new LuceneTest();
}
public LuceneTest() throws IOException {
dir = FSDirectory.open(new File("test"));
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_43, new
StandardAnalyzer(Version.LUCENE_43));
config.setInfoStream(System.out);
writer = new IndexWriter(dir, config);
addDocs(1L);
search();
//writer.commit(); -- If i call commit after search, then no
IOException occurrs!
writer.deleteAll();
}
}
</code>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]