James Moger
2012-03-15 e6637cd48c50aa5ebbc01e7826b835b75bd92a87
Close the Lucene index writer/searcher on a repository rename or delete
2 files modified
28 ■■■■■ changed files
src/com/gitblit/GitBlit.java 3 ●●●●● patch | view | raw | blame | history
src/com/gitblit/LuceneExecutor.java 25 ●●●●● patch | view | raw | blame | history
src/com/gitblit/GitBlit.java
@@ -871,6 +871,9 @@
                repository.close();
            }
        }
        // close any open index writer/searcher in the Lucene executor
        luceneExecutor.close(repositoryName);
    }
    /**
src/com/gitblit/LuceneExecutor.java
@@ -233,6 +233,31 @@
            logger.error(MessageFormat.format("Lucene indexing failure for {0}", name), t);
        }
    }
    /**
     * Close the writer/searcher objects for a repository.
     *
     * @param repositoryName
     */
    public void close(String repositoryName) {
        try {
            IndexWriter writer = writers.remove(repositoryName);
            if (writer != null) {
                writer.close();
            }
        } catch (Exception e) {
            logger.error("Failed to close index writer for " + repositoryName, e);
        }
        try {
            IndexSearcher searcher = searchers.remove(repositoryName);
            if (searcher != null) {
                searcher.close();
            }
        } catch (Exception e) {
            logger.error("Failed to close index searcher for " + repositoryName, e);
        }
    }
    /**
     * Close all Lucene indexers.