Merge pull request #502 from bcarrier/keyword_search_exception

Keyword search exception
This commit is contained in:
Richard Cordovano 2014-02-26 15:31:08 -05:00
commit 60f3bf260c
3 changed files with 19 additions and 12 deletions

View File

@ -66,9 +66,9 @@ class Installer extends ModuleInstall {
int serverStopPort = server.getCurrentSolrStopPort(); int serverStopPort = server.getCurrentSolrStopPort();
logger.log(Level.SEVERE, "There's already a server running on " logger.log(Level.SEVERE, "There's already a server running on "
+ serverPort + " port that can't be shutdown."); + serverPort + " port that can't be shutdown.");
if (!Server.available(serverPort)) { if (!Server.isPortAvailable(serverPort)) {
reportPortError(serverPort); reportPortError(serverPort);
} else if (!Server.available(serverStopPort)) { } else if (!Server.isPortAvailable(serverStopPort)) {
reportStopPortError(serverStopPort); reportStopPortError(serverStopPort);
} else { } else {
//some other reason //some other reason
@ -95,7 +95,7 @@ class Installer extends ModuleInstall {
//TODO move some of this logic to Server class //TODO move some of this logic to Server class
for (int i = 0; i <= 3; i++) { for (int i = 0; i <= 3; i++) {
logger.log(Level.INFO, "Checking if port available."); logger.log(Level.INFO, "Checking if port available.");
if (Server.available(server.getCurrentSolrServerPort())) { if (Server.isPortAvailable(server.getCurrentSolrServerPort())) {
logger.log(Level.INFO, "Port available, trying to start server."); logger.log(Level.INFO, "Port available, trying to start server.");
server.start(); server.start();
break; break;
@ -165,9 +165,9 @@ class Installer extends ModuleInstall {
//check if port is taken or some other reason //check if port is taken or some other reason
int serverPort = server.getCurrentSolrServerPort(); int serverPort = server.getCurrentSolrServerPort();
int serverStopPort = server.getCurrentSolrStopPort(); int serverStopPort = server.getCurrentSolrStopPort();
if (!Server.available(serverPort)) { if (!Server.isPortAvailable(serverPort)) {
reportPortError(serverPort); reportPortError(serverPort);
} else if (!Server.available(serverStopPort)) { } else if (!Server.isPortAvailable(serverStopPort)) {
reportStopPortError(serverStopPort); reportStopPortError(serverStopPort);
} else { } else {
//some other reason //some other reason

View File

@ -44,6 +44,7 @@ import org.netbeans.api.progress.aggregate.AggregateProgressFactory;
import org.netbeans.api.progress.aggregate.AggregateProgressHandle; import org.netbeans.api.progress.aggregate.AggregateProgressHandle;
import org.netbeans.api.progress.aggregate.ProgressContributor; import org.netbeans.api.progress.aggregate.ProgressContributor;
import org.openide.util.Cancellable; import org.openide.util.Cancellable;
import org.openide.util.Exceptions;
import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.casemodule.Case;
import org.sleuthkit.autopsy.coreutils.EscapeUtil; import org.sleuthkit.autopsy.coreutils.EscapeUtil;
import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil; import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
@ -361,8 +362,7 @@ public final class KeywordSearchIngestModule extends IngestModuleAbstractFile {
logger.log(Level.SEVERE, msg); logger.log(Level.SEVERE, msg);
String details = NbBundle.getMessage(this.getClass(), "KeywordSearchIngestModule.init.tryStopSolrMsg", msg); String details = NbBundle.getMessage(this.getClass(), "KeywordSearchIngestModule.init.tryStopSolrMsg", msg);
services.postMessage(IngestMessage.createErrorMessage(++messageID, instance, msg, details)); services.postMessage(IngestMessage.createErrorMessage(++messageID, instance, msg, details));
return; throw new IngestModuleException(msg);
} }
} catch (KeywordSearchModuleException ex) { } catch (KeywordSearchModuleException ex) {
logger.log(Level.WARNING, "Error checking if Solr server is running while initializing ingest", ex); logger.log(Level.WARNING, "Error checking if Solr server is running while initializing ingest", ex);
@ -370,9 +370,15 @@ public final class KeywordSearchIngestModule extends IngestModuleAbstractFile {
String msg = NbBundle.getMessage(this.getClass(), "KeywordSearchIngestModule.init.badInitMsg"); String msg = NbBundle.getMessage(this.getClass(), "KeywordSearchIngestModule.init.badInitMsg");
String details = NbBundle.getMessage(this.getClass(), "KeywordSearchIngestModule.init.tryStopSolrMsg", msg); String details = NbBundle.getMessage(this.getClass(), "KeywordSearchIngestModule.init.tryStopSolrMsg", msg);
services.postMessage(IngestMessage.createErrorMessage(++messageID, instance, msg, details)); services.postMessage(IngestMessage.createErrorMessage(++messageID, instance, msg, details));
return; throw new IngestModuleException(msg);
}
try {
// make an actual query to verify that server is responding
// we had cases where getStatus was OK, but the connection resulted in a 404
server.queryNumIndexedDocuments();
} catch (KeywordSearchModuleException | NoOpenCoreException ex) {
throw new IngestModuleException("Error connecting to SOLR server: " + ex.getMessage());
} }
//initialize extractors //initialize extractors
stringExtractor = new AbstractFileStringExtract(); stringExtractor = new AbstractFileStringExtract();
@ -415,7 +421,7 @@ public final class KeywordSearchIngestModule extends IngestModuleAbstractFile {
curDataSourceIds = new HashSet<Long>(); curDataSourceIds = new HashSet<Long>();
indexer = new Indexer(); indexer = new Indexer();
final int updateIntervalMs = KeywordSearchSettings.getUpdateFrequency().getTime() * 60 * 1000; final int updateIntervalMs = KeywordSearchSettings.getUpdateFrequency().getTime() * 60 * 1000;
logger.log(Level.INFO, "Using commit interval (ms): " + updateIntervalMs); logger.log(Level.INFO, "Using commit interval (ms): " + updateIntervalMs);
logger.log(Level.INFO, "Using searcher interval (ms): " + updateIntervalMs); logger.log(Level.INFO, "Using searcher interval (ms): " + updateIntervalMs);

View File

@ -350,7 +350,7 @@ public class Server {
*/ */
void start() throws KeywordSearchModuleException, SolrServerNoPortException { void start() throws KeywordSearchModuleException, SolrServerNoPortException {
logger.log(Level.INFO, "Starting Solr server from: " + solrFolder.getAbsolutePath()); logger.log(Level.INFO, "Starting Solr server from: " + solrFolder.getAbsolutePath());
if (available(currentSolrServerPort)) { if (isPortAvailable(currentSolrServerPort)) {
logger.log(Level.INFO, "Port [" + currentSolrServerPort + "] available, starting Solr"); logger.log(Level.INFO, "Port [" + currentSolrServerPort + "] available, starting Solr");
try { try {
final String MAX_SOLR_MEM_MB_PAR = "-Xmx" + Integer.toString(MAX_SOLR_MEM_MB) + "m"; final String MAX_SOLR_MEM_MB_PAR = "-Xmx" + Integer.toString(MAX_SOLR_MEM_MB) + "m";
@ -419,7 +419,7 @@ public class Server {
* *
* @param port the port to check for availability * @param port the port to check for availability
*/ */
static boolean available(int port) { static boolean isPortAvailable(int port) {
ServerSocket ss = null; ServerSocket ss = null;
try { try {
@ -524,6 +524,7 @@ public class Server {
//TODO handle timeout in cases when some other type of server on that port //TODO handle timeout in cases when some other type of server on that port
CoreAdminRequest.getStatus(null, solrServer); CoreAdminRequest.getStatus(null, solrServer);
logger.log(Level.INFO, "Solr server is running"); logger.log(Level.INFO, "Solr server is running");
} catch (SolrServerException ex) { } catch (SolrServerException ex) {