changed ensureDataExists method to resolve startup time delays as part of a fix for issue #168

Former-commit-id: 15e85be9e5e01253f4864d18178da4c395b008eb
This commit is contained in:
Jeremy Long
2014-11-25 05:58:16 -05:00
parent f154826749
commit 46c5501b7a

View File

@@ -32,8 +32,6 @@ import org.owasp.dependencycheck.analyzer.Analyzer;
import org.owasp.dependencycheck.analyzer.AnalyzerService; import org.owasp.dependencycheck.analyzer.AnalyzerService;
import org.owasp.dependencycheck.analyzer.FileTypeAnalyzer; import org.owasp.dependencycheck.analyzer.FileTypeAnalyzer;
import org.owasp.dependencycheck.analyzer.exception.AnalysisException; import org.owasp.dependencycheck.analyzer.exception.AnalysisException;
import org.owasp.dependencycheck.data.cpe.CpeMemoryIndex;
import org.owasp.dependencycheck.data.cpe.IndexException;
import org.owasp.dependencycheck.data.nvdcve.ConnectionFactory; import org.owasp.dependencycheck.data.nvdcve.ConnectionFactory;
import org.owasp.dependencycheck.data.nvdcve.CveDB; import org.owasp.dependencycheck.data.nvdcve.CveDB;
import org.owasp.dependencycheck.data.nvdcve.DatabaseException; import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
@@ -513,22 +511,20 @@ public class Engine implements Serializable {
* @throws DatabaseException thrown if there is an exception opening the database * @throws DatabaseException thrown if there is an exception opening the database
*/ */
private void ensureDataExists() throws NoDataException, DatabaseException { private void ensureDataExists() throws NoDataException, DatabaseException {
final CpeMemoryIndex cpe = CpeMemoryIndex.getInstance(); //final CpeMemoryIndex cpe = CpeMemoryIndex.getInstance();
final CveDB cve = new CveDB(); final CveDB cve = new CveDB();
try { try {
cve.open(); cve.open();
cpe.open(cve); if (!cve.dataExists()) {
} catch (IndexException ex) { throw new NoDataException("No documents exist");
throw new NoDataException(ex.getMessage(), ex); }
// cpe.open(cve);
// } catch (IndexException ex) {
// throw new NoDataException(ex.getMessage(), ex);
} catch (DatabaseException ex) { } catch (DatabaseException ex) {
throw new NoDataException(ex.getMessage(), ex); throw new NoDataException(ex.getMessage(), ex);
} finally { } finally {
cve.close(); cve.close();
} }
if (cpe.numDocs() <= 0) {
cpe.close();
throw new NoDataException("No documents exist");
}
} }
} }