diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java b/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java index abcade50e1..c32eb5c164 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2013-2014 Basis Technology Corp. + * Copyright 2013-2015 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -180,17 +180,16 @@ public class DeletedContent implements AutopsyVisitableItem { @Override public void propertyChange(PropertyChangeEvent evt) { String eventType = evt.getPropertyName(); - - // new file was added if (eventType.equals(IngestManager.IngestModuleEvent.CONTENT_CHANGED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. - * Currently, remote events may be received for a case - * that is already closed. + * Checking for a current case is a stop gap measure + * until a different way of handling the closing of + * cases is worked out. Currently, remote events may be + * received for a case that is already closed. */ try { Case.getCurrentCase(); + // new file was added // @@@ COULD CHECK If the new file is deleted before notifying... update(); } catch (IllegalStateException notUsed) { @@ -202,10 +201,10 @@ public class DeletedContent implements AutopsyVisitableItem { || eventType.equals(IngestManager.IngestJobEvent.CANCELLED.toString()) || eventType.equals(Case.Events.DATA_SOURCE_ADDED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. - * Currently, remote events may be received for a case - * that is already closed. + * Checking for a current case is a stop gap measure + * until a different way of handling the closing of + * cases is worked out. Currently, remote events may be + * received for a case that is already closed. */ try { Case.getCurrentCase(); diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java b/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java index 519a018821..abbb88def7 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java @@ -206,18 +206,19 @@ public class EmailExtracted implements AutopsyVisitableItem { String eventType = evt.getPropertyName(); if (eventType.equals(IngestManager.IngestModuleEvent.DATA_ADDED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. */ try { Case.getCurrentCase(); - /** - * Due to some unresolved issues with how cases are - * closed, it is possible for the event to have a null - * oldValue if the event is a remote event. - */ + /** + * Even with the check above, it is still possible that the + * case will be closed in a different thread before this + * code executes. If that happens, it is possible for the + * event to have a null oldValue. + */ ModuleDataEvent eventData = (ModuleDataEvent) evt.getOldValue(); if (null != eventData && eventData.getArtifactType() == BlackboardArtifact.ARTIFACT_TYPE.TSK_EMAIL_MSG) { emailResults.update(); @@ -230,10 +231,10 @@ public class EmailExtracted implements AutopsyVisitableItem { } else if (eventType.equals(IngestManager.IngestJobEvent.COMPLETED.toString()) || eventType.equals(IngestManager.IngestJobEvent.CANCELLED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. */ try { Case.getCurrentCase(); @@ -243,8 +244,7 @@ public class EmailExtracted implements AutopsyVisitableItem { * Case is closed, do nothing. */ } - } - else if (eventType.equals(Case.Events.CURRENT_CASE.toString())) { + } else if (eventType.equals(Case.Events.CURRENT_CASE.toString())) { // case was closed. Remove listeners so that we don't get called with a stale case handle if (evt.getNewValue() == null) { removeNotify(); diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java index 85c87adc10..728b79fd87 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2011-2014 Basis Technology Corp. + * Copyright 2011-2015 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -126,7 +126,7 @@ public class ExtractedContent implements AutopsyVisitableItem { * more specific form elsewhere in the tree. */ private class TypeFactory extends ChildFactory.Detachable { - private final ArrayList doNotShow; + private final ArrayList doNotShow = new ArrayList<>(); // maps the artifact type to its child node private final HashMap typeNodeList = new HashMap<>(); @@ -134,7 +134,6 @@ public class ExtractedContent implements AutopsyVisitableItem { super(); // these are shown in other parts of the UI tree - doNotShow = new ArrayList<>(); doNotShow.add(BlackboardArtifact.ARTIFACT_TYPE.TSK_GEN_INFO); doNotShow.add(BlackboardArtifact.ARTIFACT_TYPE.TSK_EMAIL_MSG); doNotShow.add(BlackboardArtifact.ARTIFACT_TYPE.TSK_HASHSET_HIT); @@ -143,56 +142,53 @@ public class ExtractedContent implements AutopsyVisitableItem { doNotShow.add(BlackboardArtifact.ARTIFACT_TYPE.TSK_INTERESTING_ARTIFACT_HIT); } - private final PropertyChangeListener pcl = new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - String eventType = evt.getPropertyName(); - if (eventType.equals(IngestManager.IngestModuleEvent.DATA_ADDED.toString())) { + private final PropertyChangeListener pcl = (PropertyChangeEvent evt) -> { + String eventType = evt.getPropertyName(); + if (eventType.equals(IngestManager.IngestModuleEvent.DATA_ADDED.toString())) { + /** + * This is a stop gap measure until a different way of + * handling the closing of cases is worked out. Currently, + * remote events may be received for a case that is already + * closed. + */ + try { + Case.getCurrentCase(); /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Due to some unresolved issues with how cases are + * closed, it is possible for the event to have a null + * oldValue if the event is a remote event. */ - try { - Case.getCurrentCase(); - /** - * Due to some unresolved issues with how cases are - * closed, it is possible for the event to have a null - * oldValue if the event is a remote event. - */ - final ModuleDataEvent event = (ModuleDataEvent) evt.getOldValue(); - if (null != event && doNotShow.contains(event.getArtifactType()) == false) { - refresh(true); - } - } catch (IllegalStateException notUsed) { - /** - * Case is closed, do nothing. - */ - } - } else if (eventType.equals(IngestManager.IngestJobEvent.COMPLETED.toString()) - || eventType.equals(IngestManager.IngestJobEvent.CANCELLED.toString())) { - /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. - */ - try { - Case.getCurrentCase(); + final ModuleDataEvent event = (ModuleDataEvent) evt.getOldValue(); + if (null != event && doNotShow.contains(event.getArtifactType()) == false) { refresh(true); - } catch (IllegalStateException notUsed) { - /** - * Case is closed, do nothing. - */ } + } catch (IllegalStateException notUsed) { + /** + * Case is closed, do nothing. + */ } - else if (eventType.equals(Case.Events.CURRENT_CASE.toString())) { - // case was closed. Remove listeners so that we don't get called with a stale case handle - if (evt.getNewValue() == null) { - removeNotify(); - skCase = null; - } + } else if (eventType.equals(IngestManager.IngestJobEvent.COMPLETED.toString()) + || eventType.equals(IngestManager.IngestJobEvent.CANCELLED.toString())) { + /** + * This is a stop gap measure until a different way of + * handling the closing of cases is worked out. Currently, + * remote events may be received for a case that is already + * closed. + */ + try { + Case.getCurrentCase(); + refresh(true); + } catch (IllegalStateException notUsed) { + /** + * Case is closed, do nothing. + */ + } + } + else if (eventType.equals(Case.Events.CURRENT_CASE.toString())) { + // case was closed. Remove listeners so that we don't get called with a stale case handle + if (evt.getNewValue() == null) { + removeNotify(); + skCase = null; } } }; @@ -394,17 +390,18 @@ public class ExtractedContent implements AutopsyVisitableItem { String eventType = evt.getPropertyName(); if (eventType.equals(IngestManager.IngestModuleEvent.DATA_ADDED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. */ try { Case.getCurrentCase(); /** - * Due to some unresolved issues with how cases are - * closed, it is possible for the event to have a null - * oldValue if the event is a remote event. + * Even with the check above, it is still possible that + * the case will be closed in a different thread before + * this code executes. If that happens, it is possible + * for the event to have a null oldValue. */ final ModuleDataEvent event = (ModuleDataEvent) evt.getOldValue(); if (null != event && event.getArtifactType() == type) { @@ -418,10 +415,10 @@ public class ExtractedContent implements AutopsyVisitableItem { } else if (eventType.equals(IngestManager.IngestJobEvent.COMPLETED.toString()) || eventType.equals(IngestManager.IngestJobEvent.CANCELLED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. */ try { Case.getCurrentCase(); diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java index 4b4659aa94..521a529eb7 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2013-2014 Basis Technology Corp. + * Copyright 2013-2015 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -178,15 +178,15 @@ public class FileSize implements AutopsyVisitableItem { public void propertyChange(PropertyChangeEvent evt) { String eventType = evt.getPropertyName(); - // new file was added if (eventType.equals(IngestManager.IngestModuleEvent.CONTENT_CHANGED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. - * Currently, remote events may be received for a case - * that is already closed. + * Checking for a current case is a stop gap measure + * until a different way of handling the closing of + * cases is worked out. Currently, remote events may be + * received for a case that is already closed. */ try { + // new file was added // @@@ could check the size here and only fire off updates if we know the file meets the min size criteria Case.getCurrentCase(); update(); @@ -199,10 +199,10 @@ public class FileSize implements AutopsyVisitableItem { || eventType.equals(IngestManager.IngestJobEvent.CANCELLED.toString()) || eventType.equals(Case.Events.DATA_SOURCE_ADDED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. - * Currently, remote events may be received for a case - * that is already closed. + * Checking for a current case is a stop gap measure + * until a different way of handling the closing of + * cases is worked out. Currently, remote events may be + * received for a case that is already closed. */ try { Case.getCurrentCase(); diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java index d230725410..23b1f40f12 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesNode.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2011-2014 Basis Technology Corp. + * Copyright 2011-2015 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -157,10 +157,10 @@ public class FileTypesNode extends DisplayableItemNode { || eventType.equals(IngestManager.IngestJobEvent.CANCELLED.toString()) || eventType.equals(Case.Events.DATA_SOURCE_ADDED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. - * Currently, remote events may be received for a case - * that is already closed. + * Checking for a current case is a stop gap measure + * until a different way of handling the closing of + * cases is worked out. Currently, remote events may be + * received for a case that is already closed. */ try { Case.getCurrentCase(); diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java b/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java index 928ba3c5f2..b6d4794dd1 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2011-2014 Basis Technology Corp. + * Copyright 2011-2015 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -180,13 +180,13 @@ public class HashsetHits implements AutopsyVisitableItem { private final PropertyChangeListener pcl = new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { - String eventType = evt.getPropertyName(); + String eventType = evt.getPropertyName(); if (eventType.equals(IngestManager.IngestModuleEvent.DATA_ADDED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. */ try { Case.getCurrentCase(); @@ -207,10 +207,10 @@ public class HashsetHits implements AutopsyVisitableItem { } else if (eventType.equals(IngestManager.IngestJobEvent.COMPLETED.toString()) || eventType.equals(IngestManager.IngestJobEvent.CANCELLED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. */ try { Case.getCurrentCase(); @@ -220,8 +220,7 @@ public class HashsetHits implements AutopsyVisitableItem { * Case is closed, do nothing. */ } - } - else if (eventType.equals(Case.Events.CURRENT_CASE.toString())) { + } else if (eventType.equals(Case.Events.CURRENT_CASE.toString())) { // case was closed. Remove listeners so that we don't get called with a stale case handle if (evt.getNewValue() == null) { removeNotify(); diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java b/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java index 4a476231ad..c4c0080679 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2011 Basis Technology Corp. + * Copyright 2011-2015 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -177,17 +177,18 @@ public class InterestingHits implements AutopsyVisitableItem { String eventType = evt.getPropertyName(); if (eventType.equals(IngestManager.IngestModuleEvent.DATA_ADDED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. */ try { Case.getCurrentCase(); /** - * Due to some unresolved issues with how cases are - * closed, it is possible for the event to have a null - * oldValue if the event is a remote event. + * Even with the check above, it is still possible that + * the case will be closed in a different thread before + * this code executes. If that happens, it is possible + * for the event to have a null oldValue. */ ModuleDataEvent eventData = (ModuleDataEvent) evt.getOldValue(); if (null != eventData && (eventData.getArtifactType() == BlackboardArtifact.ARTIFACT_TYPE.TSK_INTERESTING_ARTIFACT_HIT @@ -202,10 +203,10 @@ public class InterestingHits implements AutopsyVisitableItem { } else if (eventType.equals(IngestManager.IngestJobEvent.COMPLETED.toString()) || eventType.equals(IngestManager.IngestJobEvent.CANCELLED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. */ try { Case.getCurrentCase(); diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java b/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java index 44c530251e..c4e01e12d2 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2011-2014 Basis Technology Corp. + * Copyright 2011-2015 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -248,17 +248,18 @@ public class KeywordHits implements AutopsyVisitableItem { String eventType = evt.getPropertyName(); if (eventType.equals(IngestManager.IngestModuleEvent.DATA_ADDED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. */ try { Case.getCurrentCase(); /** - * Due to some unresolved issues with how cases are - * closed, it is possible for the event to have a null - * oldValue if the event is a remote event. + * Even with the check above, it is still possible that + * the case will be closed in a different thread before + * this code executes. If that happens, it is possible + * for the event to have a null oldValue. */ ModuleDataEvent eventData = (ModuleDataEvent) evt.getOldValue(); if (null != eventData && eventData.getArtifactType() == BlackboardArtifact.ARTIFACT_TYPE.TSK_KEYWORD_HIT) { @@ -272,10 +273,10 @@ public class KeywordHits implements AutopsyVisitableItem { } else if (eventType.equals(IngestManager.IngestJobEvent.COMPLETED.toString()) || eventType.equals(IngestManager.IngestJobEvent.CANCELLED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. */ try { Case.getCurrentCase(); @@ -285,8 +286,7 @@ public class KeywordHits implements AutopsyVisitableItem { * Case is closed, do nothing. */ } - } - else if (eventType.equals(Case.Events.CURRENT_CASE.toString())) { + } else if (eventType.equals(Case.Events.CURRENT_CASE.toString())) { // case was closed. Remove listeners so that we don't get called with a stale case handle if (evt.getNewValue() == null) { removeNotify(); diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Reports.java b/Core/src/org/sleuthkit/autopsy/datamodel/Reports.java index 83a2772bda..105e7cd052 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Reports.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Reports.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2014 Basis Technology Corp. + * Copyright 2011-2015 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -99,10 +99,10 @@ public final class Reports implements AutopsyVisitableItem { String eventType = evt.getPropertyName(); if (eventType.equals(Case.Events.REPORT_ADDED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. - * Currently, remote events may be received for a case - * that is already closed. + * Checking for a current case is a stop gap measure + * until a different way of handling the closing of + * cases is worked out. Currently, remote events may be + * received for a case that is already closed. */ try { Case.getCurrentCase(); diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Tags.java b/Core/src/org/sleuthkit/autopsy/datamodel/Tags.java index 9894aa32fb..d57919afc2 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Tags.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Tags.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2013 Basis Technology Corp. + * Copyright 2011-2015 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -121,19 +121,20 @@ public class Tags implements AutopsyVisitableItem { String eventType = evt.getPropertyName(); if (eventType.equals(IngestManager.IngestModuleEvent.DATA_ADDED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. */ try { Case.getCurrentCase(); /** - * There are two things to note here. It is possible for - * the event to have a null oldValue if the event is a - * remote event and the case is closed after the above - * call, but before this code executes. Second, the use - * of deprecated artifact types here is explained by the + * There are two things to note here. * First, even with + * the check above, it is still possible that the case + * will be closed in a different thread before this code + * executes. If that happens, it is possible for the + * event to have a null oldValue. Second, the use of + * deprecated artifact types here is explained by the * fact that in an ideal world, the TagsManager would * fire tag-related events so that the tags tree would * refresh. But, we haven't had a chance to add that, so @@ -154,10 +155,10 @@ public class Tags implements AutopsyVisitableItem { } } else if (eventType.equals(IngestManager.IngestJobEvent.COMPLETED.toString()) || eventType.equals(IngestManager.IngestJobEvent.CANCELLED.toString())) { /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. */ try { Case.getCurrentCase(); diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java index bd07ac054b..121b59000b 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java @@ -34,7 +34,6 @@ import java.util.logging.Level; import java.util.prefs.PreferenceChangeEvent; import java.util.prefs.PreferenceChangeListener; import javax.swing.Action; -import javax.swing.JPanel; import javax.swing.SwingUtilities; import javax.swing.tree.TreeSelectionModel; import org.openide.explorer.ExplorerManager; @@ -560,9 +559,10 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat } // if the image is added to the case else if (changed.equals(Case.Events.DATA_SOURCE_ADDED.toString())) { /** - * This is a stop gap measure until a different way of handling the - * closing of cases is worked out. Currently, remote events may be - * received for a case that is already closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked out. + * Currently, remote events may be received for a case that is + * already closed. */ try { Case.getCurrentCase(); @@ -585,9 +585,10 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat || changed.equals(IngestManager.IngestJobEvent.CANCELLED.toString()) || changed.equals(IngestManager.IngestModuleEvent.CONTENT_CHANGED.toString())) { /** - * This is a stop gap measure until a different way of handling the - * closing of cases is worked out. Currently, remote events may be - * received for a case that is already closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked out. + * Currently, remote events may be received for a case that is + * already closed. */ try { Case.getCurrentCase(); diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java b/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java index 48b2e5d417..be8a799556 100644 --- a/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java +++ b/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java @@ -254,10 +254,10 @@ class DateSearchFilter extends AbstractFileSearchFilter { case DATA_SOURCE_ADDED: case DATA_SOURCE_DELETED: /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. */ try { Case.getCurrentCase(); diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java index 80eec14f1d..cb055fcb98 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java @@ -362,7 +362,7 @@ public class IngestManager { * ingest message box, NetBeans progress handles, etc. Running interactively * is the default. */ - synchronized boolean isRunningInteractively() { + public synchronized boolean isRunningInteractively() { return this.runInteractively; } diff --git a/Core/src/org/sleuthkit/autopsy/timeline/TimeLineController.java b/Core/src/org/sleuthkit/autopsy/timeline/TimeLineController.java index b5fcd7dc61..bb92d57611 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/TimeLineController.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/TimeLineController.java @@ -680,10 +680,23 @@ public class TimeLineController { public void propertyChange(PropertyChangeEvent evt) { switch (IngestManager.IngestModuleEvent.valueOf(evt.getPropertyName())) { case FILE_DONE: - Platform.runLater(() -> { - newEventsFlag.set(true); - }); - break; + /** + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. + */ + try { + Case.getCurrentCase(); + Platform.runLater(() -> { + newEventsFlag.set(true); + }); + break; + } catch (IllegalStateException notUsed) { + /** + * Case is closed, do nothing. + */ + } } } } @@ -697,10 +710,10 @@ public class TimeLineController { case CANCELLED: case COMPLETED: /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. */ try { Case.getCurrentCase(); @@ -725,10 +738,10 @@ public class TimeLineController { switch (Case.Events.valueOf(evt.getPropertyName())) { case DATA_SOURCE_ADDED: /** - * This is a stop gap measure until a different way of - * handling the closing of cases is worked out. Currently, - * remote events may be received for a case that is already - * closed. + * Checking for a current case is a stop gap measure until a + * different way of handling the closing of cases is worked + * out. Currently, remote events may be received for a case + * that is already closed. */ try { Case.getCurrentCase();