From d687daad908305367dc55a9227e7d89810b7f3fe 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: 25acb44a1e8015da7c144e136c3a6adeb3992fb6 --- .../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); }