Hi,

before setting up a bug tracker account I wanted to confirm that it's not just me seeing this as a problem.

It appears that the usage of the lucene indexer for things like 'find occurrences' breaks the deletion of the project. The reproduction steps are rather simple: Create a project, create a module, add a variable with at least one usage and then use find-occurrences. Finally delete the project - including contents - from disk.

This runs into an exception for me when Eclipse tries to delete metadata from the project, particularly in the metadata of the org.eclipse.core.resources plugin (.projects/foo/com.python.pydev.analysis). It appears the Lucene indexer files are causing this as creating a new project with the same name and trying a find occurrence in that new project the Lucene indexer complains about the write.lock file not being usable. I also find that directory left over after deletion of the project while all other files and directories in .project/foo are gone.

This problem only appears on Windows which suggests that Lucene might be doing something to lock its files with the filesystem so they cannot be deleted. I could somewhat confirm this theory by manually trying to delete the folder via Windows explorer after using find-occurrences, this was forbidden.

Finally switching the AbstractAdditionalDependencyInfo class to use the deprecated ReferenceSearches instead of the ReferenceSearchesLucene class for search makes the problem go away completely.

I had a short look at the IndexApi class which uses Lucene and couldn't help but wonder if it's really necessary to keep a 'Writer' object open and running the whole time Eclipse is running. I would've expected the writer object to be short-lived - for updating the index - and a reader object possibly being open all the time for reading the stored data.

Andreas

--
Andreas Pakulat squ...@froglogic.com
froglogic GmbH - Automated UI and Web Testing


_______________________________________________
pydev-code mailing list
pydev-code@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pydev-code

Reply via email to