From 60110f769bb442494f6472d5ff3e39d596bf4130 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 18 Sep 2015 07:54:46 -0400
Subject: [PATCH] Revert "Merge pull request #915 from lucamilanesio/lucene-5.2.1"

---
 .classpath                                           |   16 ++---
 build.moxie                                          |    2 
 gitblit.iml                                          |   64 +++++++--------------
 src/main/java/com/gitblit/service/LuceneService.java |   22 +++---
 src/main/java/com/gitblit/tickets/TicketIndexer.java |   30 +++++-----
 5 files changed, 55 insertions(+), 79 deletions(-)

diff --git a/.classpath b/.classpath
index b31b70c..bd0b437 100644
--- a/.classpath
+++ b/.classpath
@@ -20,15 +20,13 @@
 	<classpathentry kind="lib" path="ext/wicket-1.4.21.jar" sourcepath="ext/src/wicket-1.4.21.jar" />
 	<classpathentry kind="lib" path="ext/wicket-auth-roles-1.4.21.jar" sourcepath="ext/src/wicket-auth-roles-1.4.21.jar" />
 	<classpathentry kind="lib" path="ext/wicket-extensions-1.4.21.jar" sourcepath="ext/src/wicket-extensions-1.4.21.jar" />
-	<classpathentry kind="lib" path="ext/lucene-core-5.2.1.jar" sourcepath="ext/src/lucene-core-5.2.1.jar" />
-	<classpathentry kind="lib" path="ext/lucene-analyzers-common-5.2.1.jar" sourcepath="ext/src/lucene-analyzers-common-5.2.1.jar" />
-	<classpathentry kind="lib" path="ext/lucene-highlighter-5.2.1.jar" sourcepath="ext/src/lucene-highlighter-5.2.1.jar" />
-	<classpathentry kind="lib" path="ext/lucene-join-5.2.1.jar" sourcepath="ext/src/lucene-join-5.2.1.jar" />
-	<classpathentry kind="lib" path="ext/lucene-grouping-5.2.1.jar" sourcepath="ext/src/lucene-grouping-5.2.1.jar" />
-	<classpathentry kind="lib" path="ext/lucene-queries-5.2.1.jar" sourcepath="ext/src/lucene-queries-5.2.1.jar" />
-	<classpathentry kind="lib" path="ext/lucene-memory-5.2.1.jar" sourcepath="ext/src/lucene-memory-5.2.1.jar" />
-	<classpathentry kind="lib" path="ext/lucene-queryparser-5.2.1.jar" sourcepath="ext/src/lucene-queryparser-5.2.1.jar" />
-	<classpathentry kind="lib" path="ext/lucene-sandbox-5.2.1.jar" sourcepath="ext/src/lucene-sandbox-5.2.1.jar" />
+	<classpathentry kind="lib" path="ext/lucene-core-4.10.0.jar" sourcepath="ext/src/lucene-core-4.10.0.jar" />
+	<classpathentry kind="lib" path="ext/lucene-analyzers-common-4.10.0.jar" sourcepath="ext/src/lucene-analyzers-common-4.10.0.jar" />
+	<classpathentry kind="lib" path="ext/lucene-highlighter-4.10.0.jar" sourcepath="ext/src/lucene-highlighter-4.10.0.jar" />
+	<classpathentry kind="lib" path="ext/lucene-memory-4.10.0.jar" sourcepath="ext/src/lucene-memory-4.10.0.jar" />
+	<classpathentry kind="lib" path="ext/lucene-queries-4.10.0.jar" sourcepath="ext/src/lucene-queries-4.10.0.jar" />
+	<classpathentry kind="lib" path="ext/lucene-queryparser-4.10.0.jar" sourcepath="ext/src/lucene-queryparser-4.10.0.jar" />
+	<classpathentry kind="lib" path="ext/lucene-sandbox-4.10.0.jar" sourcepath="ext/src/lucene-sandbox-4.10.0.jar" />
 	<classpathentry kind="lib" path="ext/jakarta-regexp-1.4.jar" />
 	<classpathentry kind="lib" path="ext/pegdown-1.4.2.jar" sourcepath="ext/src/pegdown-1.4.2.jar" />
 	<classpathentry kind="lib" path="ext/parboiled-java-1.1.6.jar" sourcepath="ext/src/parboiled-java-1.1.6.jar" />
diff --git a/build.moxie b/build.moxie
index 1cfd9b8..311e26d 100644
--- a/build.moxie
+++ b/build.moxie
@@ -105,7 +105,7 @@
   jetty.version  : 9.2.10.v20150310
   slf4j.version  : 1.7.10
   wicket.version : 1.4.21
-  lucene.version : 5.2.1
+  lucene.version : 4.10.0
   jgit.version   : 4.0.1.201506240215-r
   groovy.version : 2.4.1
   bouncycastle.version : 1.51
diff --git a/gitblit.iml b/gitblit.iml
index 247220b..343f24e 100644
--- a/gitblit.iml
+++ b/gitblit.iml
@@ -179,101 +179,79 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library">
-      <library name="lucene-core-5.2.1.jar">
+      <library name="lucene-core-4.10.0.jar">
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/ext/lucene-core-5.2.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/ext/lucene-core-4.10.0.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES>
-          <root url="jar://$MODULE_DIR$/ext/src/lucene-core-5.2.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/ext/src/lucene-core-4.10.0.jar!/" />
         </SOURCES>
       </library>
     </orderEntry>
     <orderEntry type="module-library">
-      <library name="lucene-analyzers-common-5.2.1.jar">
+      <library name="lucene-analyzers-common-4.10.0.jar">
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/ext/lucene-analyzers-common-5.2.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/ext/lucene-analyzers-common-4.10.0.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES>
-          <root url="jar://$MODULE_DIR$/ext/src/lucene-analyzers-common-5.2.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/ext/src/lucene-analyzers-common-4.10.0.jar!/" />
         </SOURCES>
       </library>
     </orderEntry>
     <orderEntry type="module-library">
-      <library name="lucene-highlighter-5.2.1.jar">
+      <library name="lucene-highlighter-4.10.0.jar">
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/ext/lucene-highlighter-5.2.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/ext/lucene-highlighter-4.10.0.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES>
-          <root url="jar://$MODULE_DIR$/ext/src/lucene-highlighter-5.2.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/ext/src/lucene-highlighter-4.10.0.jar!/" />
         </SOURCES>
       </library>
     </orderEntry>
     <orderEntry type="module-library">
-      <library name="lucene-join-5.2.1.jar">
+      <library name="lucene-memory-4.10.0.jar">
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/ext/lucene-join-5.2.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/ext/lucene-memory-4.10.0.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES>
-          <root url="jar://$MODULE_DIR$/ext/src/lucene-join-5.2.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/ext/src/lucene-memory-4.10.0.jar!/" />
         </SOURCES>
       </library>
     </orderEntry>
     <orderEntry type="module-library">
-      <library name="lucene-grouping-5.2.1.jar">
+      <library name="lucene-queries-4.10.0.jar">
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/ext/lucene-grouping-5.2.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/ext/lucene-queries-4.10.0.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES>
-          <root url="jar://$MODULE_DIR$/ext/src/lucene-grouping-5.2.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/ext/src/lucene-queries-4.10.0.jar!/" />
         </SOURCES>
       </library>
     </orderEntry>
     <orderEntry type="module-library">
-      <library name="lucene-queries-5.2.1.jar">
+      <library name="lucene-queryparser-4.10.0.jar">
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/ext/lucene-queries-5.2.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/ext/lucene-queryparser-4.10.0.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES>
-          <root url="jar://$MODULE_DIR$/ext/src/lucene-queries-5.2.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/ext/src/lucene-queryparser-4.10.0.jar!/" />
         </SOURCES>
       </library>
     </orderEntry>
     <orderEntry type="module-library">
-      <library name="lucene-memory-5.2.1.jar">
+      <library name="lucene-sandbox-4.10.0.jar">
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/ext/lucene-memory-5.2.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/ext/lucene-sandbox-4.10.0.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES>
-          <root url="jar://$MODULE_DIR$/ext/src/lucene-memory-5.2.1.jar!/" />
-        </SOURCES>
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library name="lucene-queryparser-5.2.1.jar">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/ext/lucene-queryparser-5.2.1.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/ext/src/lucene-queryparser-5.2.1.jar!/" />
-        </SOURCES>
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library name="lucene-sandbox-5.2.1.jar">
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/ext/lucene-sandbox-5.2.1.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/ext/src/lucene-sandbox-5.2.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/ext/src/lucene-sandbox-4.10.0.jar!/" />
         </SOURCES>
       </library>
     </orderEntry>
diff --git a/src/main/java/com/gitblit/service/LuceneService.java b/src/main/java/com/gitblit/service/LuceneService.java
index 59b1ff2..097a39b 100644
--- a/src/main/java/com/gitblit/service/LuceneService.java
+++ b/src/main/java/com/gitblit/service/LuceneService.java
@@ -267,7 +267,7 @@
 		// close all writers
 		for (String writer : writers.keySet()) {
 			try {
-				writers.get(writer).close();
+				writers.get(writer).close(true);
 			} catch (Throwable t) {
 				logger.error("Failed to close Lucene writer for " + writer, t);
 			}
@@ -722,8 +722,8 @@
 		String q = MessageFormat.format(pattern, SearchObjectType.blob.name(), branch, path);
 
 		BooleanQuery query = new BooleanQuery();
-		StandardAnalyzer analyzer = new StandardAnalyzer();
-		QueryParser qp = new QueryParser(FIELD_SUMMARY, analyzer);
+		StandardAnalyzer analyzer = new StandardAnalyzer(LUCENE_VERSION);
+		QueryParser qp = new QueryParser(LUCENE_VERSION, FIELD_SUMMARY, analyzer);
 		query.add(qp.parse(q), Occur.MUST);
 
 		IndexWriter writer = getIndexWriter(repositoryName);
@@ -968,14 +968,14 @@
 		IndexWriter indexWriter = writers.get(repository);
 		File repositoryFolder = FileKey.resolve(new File(repositoriesFolder, repository), FS.DETECTED);
 		File indexFolder = new File(repositoryFolder, LUCENE_DIR);
-		Directory directory = FSDirectory.open(indexFolder.toPath());
+		Directory directory = FSDirectory.open(indexFolder);
 
 		if (indexWriter == null) {
 			if (!indexFolder.exists()) {
 				indexFolder.mkdirs();
 			}
-			StandardAnalyzer analyzer = new StandardAnalyzer();
-			IndexWriterConfig config = new IndexWriterConfig(analyzer);
+			StandardAnalyzer analyzer = new StandardAnalyzer(LUCENE_VERSION);
+			IndexWriterConfig config = new IndexWriterConfig(LUCENE_VERSION, analyzer);
 			config.setOpenMode(OpenMode.CREATE_OR_APPEND);
 			indexWriter = new IndexWriter(directory, config);
 			writers.put(repository, indexWriter);
@@ -1028,16 +1028,16 @@
 			return null;
 		}
 		Set<SearchResult> results = new LinkedHashSet<SearchResult>();
-		StandardAnalyzer analyzer = new StandardAnalyzer();
+		StandardAnalyzer analyzer = new StandardAnalyzer(LUCENE_VERSION);
 		try {
 			// default search checks summary and content
 			BooleanQuery query = new BooleanQuery();
 			QueryParser qp;
-			qp = new QueryParser(FIELD_SUMMARY, analyzer);
+			qp = new QueryParser(LUCENE_VERSION, FIELD_SUMMARY, analyzer);
 			qp.setAllowLeadingWildcard(true);
 			query.add(qp.parse(text), Occur.SHOULD);
 
-			qp = new QueryParser(FIELD_CONTENT, analyzer);
+			qp = new QueryParser(LUCENE_VERSION, FIELD_CONTENT, analyzer);
 			qp.setAllowLeadingWildcard(true);
 			query.add(qp.parse(text), Occur.SHOULD);
 
@@ -1060,7 +1060,7 @@
 			Query rewrittenQuery = searcher.rewrite(query);
 			logger.debug(rewrittenQuery.toString());
 
-			TopScoreDocCollector collector = TopScoreDocCollector.create(5000);
+			TopScoreDocCollector collector = TopScoreDocCollector.create(5000, true);
 			searcher.search(rewrittenQuery, collector);
 			int offset = Math.max(0, (page - 1) * pageSize);
 			ScoreDoc[] hits = collector.topDocs(offset, pageSize).scoreDocs;
@@ -1225,7 +1225,7 @@
 	 */
 	private class MultiSourceReader extends MultiReader {
 
-		MultiSourceReader(IndexReader [] readers) throws IOException {
+		MultiSourceReader(IndexReader [] readers) {
 			super(readers, false);
 		}
 
diff --git a/src/main/java/com/gitblit/tickets/TicketIndexer.java b/src/main/java/com/gitblit/tickets/TicketIndexer.java
index ad8ea23..e2d53af 100644
--- a/src/main/java/com/gitblit/tickets/TicketIndexer.java
+++ b/src/main/java/com/gitblit/tickets/TicketIndexer.java
@@ -167,7 +167,7 @@
 
 	private final Logger log = LoggerFactory.getLogger(getClass());
 
-	private final Version luceneVersion = Version.LUCENE_5_2_1;
+	private final Version luceneVersion = Version.LUCENE_46;
 
 	private final File luceneDir;
 
@@ -201,8 +201,8 @@
 	public boolean deleteAll(RepositoryModel repository) {
 		try {
 			IndexWriter writer = getWriter();
-			StandardAnalyzer analyzer = new StandardAnalyzer();
-			QueryParser qp = new QueryParser(Lucene.rid.name(), analyzer);
+			StandardAnalyzer analyzer = new StandardAnalyzer(luceneVersion);
+			QueryParser qp = new QueryParser(luceneVersion, Lucene.rid.name(), analyzer);
 			BooleanQuery query = new BooleanQuery();
 			query.add(qp.parse(repository.getRID()), Occur.MUST);
 
@@ -287,8 +287,8 @@
 	 * @return true, if deleted, false if no record was deleted
 	 */
 	private boolean delete(String repository, long ticketId, IndexWriter writer) throws Exception {
-		StandardAnalyzer analyzer = new StandardAnalyzer();
-		QueryParser qp = new QueryParser(Lucene.did.name(), analyzer);
+		StandardAnalyzer analyzer = new StandardAnalyzer(luceneVersion);
+		QueryParser qp = new QueryParser(luceneVersion, Lucene.did.name(), analyzer);
 		BooleanQuery query = new BooleanQuery();
 		query.add(qp.parse(StringUtils.getSHA1(repository + ticketId)), Occur.MUST);
 
@@ -331,21 +331,21 @@
 			return Collections.emptyList();
 		}
 		Set<QueryResult> results = new LinkedHashSet<QueryResult>();
-		StandardAnalyzer analyzer = new StandardAnalyzer();
+		StandardAnalyzer analyzer = new StandardAnalyzer(luceneVersion);
 		try {
 			// search the title, description and content
 			BooleanQuery query = new BooleanQuery();
 			QueryParser qp;
 
-			qp = new QueryParser(Lucene.title.name(), analyzer);
+			qp = new QueryParser(luceneVersion, Lucene.title.name(), analyzer);
 			qp.setAllowLeadingWildcard(true);
 			query.add(qp.parse(text), Occur.SHOULD);
 
-			qp = new QueryParser(Lucene.body.name(), analyzer);
+			qp = new QueryParser(luceneVersion, Lucene.body.name(), analyzer);
 			qp.setAllowLeadingWildcard(true);
 			query.add(qp.parse(text), Occur.SHOULD);
 
-			qp = new QueryParser(Lucene.content.name(), analyzer);
+			qp = new QueryParser(luceneVersion, Lucene.content.name(), analyzer);
 			qp.setAllowLeadingWildcard(true);
 			query.add(qp.parse(text), Occur.SHOULD);
 
@@ -354,7 +354,7 @@
 
 			log.debug(rewrittenQuery.toString());
 
-			TopScoreDocCollector collector = TopScoreDocCollector.create(5000);
+			TopScoreDocCollector collector = TopScoreDocCollector.create(5000, true);
 			searcher.search(rewrittenQuery, collector);
 			int offset = Math.max(0, (page - 1) * pageSize);
 			ScoreDoc[] hits = collector.topDocs(offset, pageSize).scoreDocs;
@@ -392,9 +392,9 @@
 		}
 
 		Set<QueryResult> results = new LinkedHashSet<QueryResult>();
-		StandardAnalyzer analyzer = new StandardAnalyzer();
+		StandardAnalyzer analyzer = new StandardAnalyzer(luceneVersion);
 		try {
-			QueryParser qp = new QueryParser(Lucene.content.name(), analyzer);
+			QueryParser qp = new QueryParser(luceneVersion, Lucene.content.name(), analyzer);
 			Query query = qp.parse(queryText);
 
 			IndexSearcher searcher = getSearcher();
@@ -443,14 +443,14 @@
 
 	private IndexWriter getWriter() throws IOException {
 		if (writer == null) {
-			Directory directory = FSDirectory.open(luceneDir.toPath());
+			Directory directory = FSDirectory.open(luceneDir);
 
 			if (!luceneDir.exists()) {
 				luceneDir.mkdirs();
 			}
 
-			StandardAnalyzer analyzer = new StandardAnalyzer();
-			IndexWriterConfig config = new IndexWriterConfig(analyzer);
+			StandardAnalyzer analyzer = new StandardAnalyzer(luceneVersion);
+			IndexWriterConfig config = new IndexWriterConfig(luceneVersion, analyzer);
 			config.setOpenMode(OpenMode.CREATE_OR_APPEND);
 			writer = new IndexWriter(directory, config);
 		}

--
Gitblit v1.9.1