[ 
https://issues.apache.org/jira/browse/LUCENE-5058?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13683344#comment-13683344
 ] 

Christian commented on LUCENE-5058:
-----------------------------------

There is no virus scanner and the lock is not held by explorer but by the java 
process. 
What do you mean with "this is not a problem"? Does this IOException affect the 
functionality of the index in any way?
                
> 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:title=Bar.java|borderStyle=solid}
> 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: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to