Skip to content
Snippets Groups Projects
Commit d0ec4dd6 authored by apriestman's avatar apriestman Committed by rcordovano
Browse files

Create timeline controller only at case open

parent b55a3882
Branches
No related tags found
No related merge requests found
......@@ -49,19 +49,19 @@ private TimeLineModule() {
}
/**
* Get instance of the controller for the current case
* Get instance of the controller for the current case.
* The controller instance is initialized from a case open event.
*
* @return the controller for the current case.
*
* @throws NoCurrentCaseException If there is no case open.
* @throws TskCoreException If there was a problem accessing the case
* database.
*
*/
public static TimeLineController getController() throws NoCurrentCaseException, TskCoreException {
public static TimeLineController getController() throws TskCoreException {
synchronized (controllerLock) {
if (controller == null) {
controller = new TimeLineController(Case.getCurrentCaseThrows());
throw new TskCoreException("Timeline controller not initialized");
}
return controller;
}
......@@ -100,13 +100,22 @@ public void propertyChange(PropertyChangeEvent evt) {
}
controller = null;
}
} else {
// Case is opening - create the controller now
synchronized (controllerLock) {
try {
controller = new TimeLineController(Case.getCurrentCaseThrows());
} catch (TskCoreException | NoCurrentCaseException ex) {
logger.log(Level.SEVERE, "Error creating Timeline controller", ex);
}
}
}
} else {
try {
getController().handleCaseEvent(evt);
} catch (NoCurrentCaseException ignored) {
} catch (TskCoreException ex) {
logger.log(Level.SEVERE, "Error handling application event", ex);
// The call to getController() will only fail due to case closing, so do
// not record the error.
}
}
}
......@@ -121,12 +130,9 @@ static private class IngestModuleEventListener implements PropertyChangeListener
public void propertyChange(PropertyChangeEvent evt) {
try {
getController().handleIngestModuleEvent(evt);
} catch (NoCurrentCaseException ex) {
// ignore
return;
} catch (TskCoreException ex) {
MessageNotifyUtil.Message.error("Error creating timeline controller.");
logger.log(Level.SEVERE, "Error creating timeline controller", ex);
// The call to getController() will only fail due to case closing, so do
// not record the error.
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment