Skip to content

Commit 8bbc610

Browse files
authored
chore: Replace deprecated lucene methods (#8079)
1 parent c38ea11 commit 8bbc610

File tree

3 files changed

+20
-18
lines changed

3 files changed

+20
-18
lines changed

core/src/main/java/org/owasp/dependencycheck/data/cpe/AbstractMemoryIndex.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import org.apache.lucene.index.IndexWriterConfig;
4040
import org.apache.lucene.queryparser.classic.ParseException;
4141
import org.apache.lucene.queryparser.classic.QueryParser;
42-
import org.apache.lucene.search.BooleanQuery;
4342
import org.apache.lucene.search.IndexSearcher;
4443
import org.apache.lucene.search.Query;
4544
import org.apache.lucene.search.TopDocs;
@@ -282,15 +281,15 @@ public synchronized Query parseQuery(String searchString) throws ParseException,
282281
Query query;
283282
try {
284283
query = queryParser.parse(searchString);
285-
} catch (BooleanQuery.TooManyClauses ex) {
286-
BooleanQuery.setMaxClauseCount(Integer.MAX_VALUE);
284+
} catch (IndexSearcher.TooManyClauses ex) {
285+
IndexSearcher.setMaxClauseCount(Integer.MAX_VALUE);
287286
query = queryParser.parse(searchString);
288287
} catch (ParseException ex) {
289288
if (ex.getMessage() != null && ex.getMessage().contains("too many boolean clauses")) {
290-
BooleanQuery.setMaxClauseCount(Integer.MAX_VALUE);
289+
IndexSearcher.setMaxClauseCount(Integer.MAX_VALUE);
291290
query = queryParser.parse(searchString);
292291
} else {
293-
LOGGER.debug("Parse Excepction", ex);
292+
LOGGER.debug("Parse Exception", ex);
294293
throw ex;
295294
}
296295
}
@@ -325,7 +324,7 @@ public synchronized TopDocs search(Query query, int maxQueryResults) throws Corr
325324
*/
326325
@Override
327326
public synchronized Document getDocument(int documentId) throws IOException {
328-
return indexSearcher.doc(documentId);
327+
return indexSearcher.storedFields().document(documentId);
329328
}
330329

331330
/**

core/src/test/java/org/owasp/dependencycheck/data/lucene/FieldAnalyzerTest.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131
import org.apache.lucene.search.IndexSearcher;
3232
import org.apache.lucene.search.Query;
3333
import org.apache.lucene.search.ScoreDoc;
34-
import org.apache.lucene.search.TopScoreDocCollector;
34+
import org.apache.lucene.search.TopDocs;
35+
import org.apache.lucene.search.TopScoreDocCollectorManager;
3536
import org.apache.lucene.store.Directory;
3637
import org.apache.lucene.store.MMapDirectory;
3738
import org.junit.jupiter.api.Test;
@@ -88,13 +89,15 @@ void testAnalyzers() throws Exception {
8889

8990
IndexReader reader = DirectoryReader.open(index);
9091
IndexSearcher searcher = new IndexSearcher(reader);
91-
TopScoreDocCollector collector = TopScoreDocCollector.create(hitsPerPage, hitsThreshold);
92-
searcher.search(q, collector);
93-
ScoreDoc[] hits = collector.topDocs().scoreDocs;
92+
TopScoreDocCollectorManager manager =
93+
new TopScoreDocCollectorManager(hitsPerPage, null, hitsThreshold, false);
94+
95+
TopDocs topDocs = searcher.search(q, manager);
96+
ScoreDoc[] hits = topDocs.scoreDocs;
9497

9598
assertEquals(1, hits.length, "Did not find 1 document?");
96-
assertEquals("springframework", searcher.doc(hits[0].doc).get(field1));
97-
assertEquals("springsource", searcher.doc(hits[0].doc).get(field2));
99+
assertEquals("springframework", searcher.storedFields().document(hits[0].doc).get(field1));
100+
assertEquals("springsource", searcher.storedFields().document(hits[0].doc).get(field2));
98101

99102
querystr = "product:(Apache Struts) vendor:(Apache)";
100103

@@ -105,11 +108,11 @@ void testAnalyzers() throws Exception {
105108
querystr = "product:( x-stream^5 ) AND vendor:( thoughtworks.xstream )";
106109
reset(searchAnalyzerProduct, searchAnalyzerVendor);
107110
Query q3 = parser.parse(querystr);
108-
collector = TopScoreDocCollector.create(hitsPerPage, hitsThreshold);
109-
searcher.search(q3, collector);
110-
hits = collector.topDocs().scoreDocs;
111-
assertEquals("x-stream", searcher.doc(hits[0].doc).get(field1));
112-
assertEquals("xstream", searcher.doc(hits[0].doc).get(field2));
111+
manager = new TopScoreDocCollectorManager(hitsPerPage, null, hitsThreshold, false);
112+
topDocs = searcher.search(q3, manager);
113+
hits = topDocs.scoreDocs;
114+
assertEquals("x-stream", searcher.storedFields().document(hits[0].doc).get(field1));
115+
assertEquals("xstream", searcher.storedFields().document(hits[0].doc).get(field2));
113116
}
114117

115118
private IndexWriter createIndex(Analyzer analyzer, Directory index) throws IOException {

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ Copyright (c) 2012 - Jeremy Long
118118
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
119119
<github.global.server>github</github.global.server>
120120

121-
<apache.lucene.version>9.12.0</apache.lucene.version>
121+
<apache.lucene.version>9.12.3</apache.lucene.version>
122122
<apache.ant.version>1.10.15</apache.ant.version>
123123

124124
<!-- upgrading slf4j and logback can cause issues ;) https://github.com/dependency-check/DependencyCheck/issues/4846 -->

0 commit comments

Comments
 (0)