From e2f174e92e4a603dbd88f2f8f06f365169a72070 Mon Sep 17 00:00:00 2001 From: Jeremy Long Date: Thu, 3 Oct 2013 09:01:59 -0400 Subject: [PATCH] added additional null checks Former-commit-id: 74979677f056de15cdcb1322dfd6c0fcd4ceb9a3 --- .../data/cpe/CpeIndexReader.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/cpe/CpeIndexReader.java b/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/cpe/CpeIndexReader.java index 68f9344f4..d81c6ce66 100644 --- a/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/cpe/CpeIndexReader.java +++ b/dependency-check-core/src/main/java/org/owasp/dependencycheck/data/cpe/CpeIndexReader.java @@ -38,6 +38,7 @@ import org.apache.lucene.search.TopDocs; import org.apache.lucene.util.Version; import org.owasp.dependencycheck.data.lucene.FieldAnalyzer; import org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer; +import org.owasp.dependencycheck.data.update.BatchUpdate; /** * @@ -119,6 +120,22 @@ public class CpeIndexReader extends BaseIndex { * Index */ public TopDocs search(String searchString, int maxQueryResults) throws ParseException, IOException { + if (searchString == null || searchString.trim().isEmpty()) { + throw new ParseException("Query is null or empty"); + } + if (queryParser == null) { + if (isOpen()) { + final String msg = String.format("QueryParser is null for query: '%s'. Attempting to reopen index.", searchString); + Logger.getLogger(CpeIndexReader.class.getName()).log(Level.WARNING, msg); + close(); + open(); + } else { + final String msg = String.format("QueryParser is null, but data source is open, for query: '%s'. Attempting to reopen index.", searchString); + Logger.getLogger(CpeIndexReader.class.getName()).log(Level.WARNING, msg); + close(); + open(); + } + } final Query query = queryParser.parse(searchString); return indexSearcher.search(query, maxQueryResults); }