From 53b6631edc5cf9d27461c858149cca0d99580a6a Mon Sep 17 00:00:00 2001 From: adam-m Date: Wed, 20 Mar 2013 09:26:50 -0400 Subject: [PATCH 1/6] close tsk files are file pipeline is done --- .../org/sleuthkit/autopsy/ingest/IngestManager.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java index a903fa14fa..518ab920d6 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java @@ -899,7 +899,10 @@ public class IngestManager { logger.log(Level.SEVERE, "Error: unexpected exception from module: " + module.getName(), e); stats.addError(module); } - } + } //end for every module + + //free the internal file resource after done with every module + fileToProcess.close(); int newTotalEnqueuedFiles = fileScheduler.getFilesEnqueuedEst(); if (newTotalEnqueuedFiles > totalEnqueuedFiles) { @@ -915,7 +918,8 @@ public class IngestManager { } //--totalEnqueuedFiles; - } //end of this AbstractFile + + } //end of for every AbstractFile logger.log(Level.INFO, "IngestManager: Finished processing files"); return null; } @@ -933,8 +937,7 @@ public class IngestManager { } logger.log(Level.INFO, PlatformUtil.getAllMemUsageInfo()); - logger.log(Level.INFO, "Freeing resources post file pipeline run"); - System.gc(); + logger.log(Level.INFO, "Freeing jvm heap resources post file pipeline run"); System.gc(); logger.log(Level.INFO, PlatformUtil.getAllMemUsageInfo()); From b0fd6b2e9de0ad2c35048b560dc378481b59f8b8 Mon Sep 17 00:00:00 2001 From: adam-m Date: Wed, 20 Mar 2013 12:40:07 -0400 Subject: [PATCH 2/6] image viewer: handle condition when case is being closed and image had been selected earlier --- .../autopsy/corecomponents/DataContentViewerMedia.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java index 7b5f833b47..2611fe275d 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java @@ -303,6 +303,12 @@ public class DataContentViewerMedia extends javax.swing.JPanel implements DataCo private void showImageFx(final AbstractFile file) { final String fileName = file.getName(); + if (!Case.isCaseOpen()) { + //handle in-between condition when case is being closed + //and an image was previously selected + return; + } + // load the image PlatformImpl.runLater(new Runnable() { @Override @@ -362,15 +368,14 @@ public class DataContentViewerMedia extends javax.swing.JPanel implements DataCo fxPanel.setScene(fxScene); videoPanel.setVisible(true); } else { + inImageMode = true; final JFXPanel fxPanel = new JFXPanel(); fxPanel.setScene(fxScene); - //when done, join with the swing panel EventQueue.invokeLater(new Runnable() { @Override public void run() { - inImageMode = true; //remove video panels and recreate image view panel //TODO use swing layered pane to switch between different modes videoPanel.removeAll(); From 2ce9fa67d40f7a942d5cbc8253f0a04b268a2dd4 Mon Sep 17 00:00:00 2001 From: adam-m Date: Wed, 20 Mar 2013 12:45:15 -0400 Subject: [PATCH 3/6] add a check if case is still open before calling setNode() to help eliminate case closing issues when old irrelevant selection events are being pumped --- .../AbstractDataResultViewer.java | 30 +++++++++++-------- .../DirectoryTreeTopComponent.java | 12 +++++--- 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/AbstractDataResultViewer.java b/Core/src/org/sleuthkit/autopsy/corecomponents/AbstractDataResultViewer.java index 1f7228b212..3387065d1d 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/AbstractDataResultViewer.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/AbstractDataResultViewer.java @@ -30,6 +30,7 @@ import org.openide.explorer.ExplorerManager; import org.openide.explorer.ExplorerManager.Provider; import org.openide.nodes.Node; import org.openide.util.Lookup; +import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.corecomponentinterfaces.DataContent; import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer; import org.sleuthkit.autopsy.coreutils.Logger; @@ -43,10 +44,9 @@ public abstract class AbstractDataResultViewer extends JPanel implements private static final Logger logger = Logger.getLogger(AbstractDataResultViewer.class.getName()); protected transient ExplorerManager em = new ExplorerManager(); private PropertyChangeListener nodeSelListener; - /** - * Content viewer to respond to selection events - * Either the main one, or custom one if set + * Content viewer to respond to selection events Either the main one, or + * custom one if set */ protected DataContent contentViewer; @@ -54,17 +54,22 @@ public abstract class AbstractDataResultViewer extends JPanel implements //DataContent is designed to return only the default viewer from lookup //use the default one unless set otherwise - contentViewer = Lookup.getDefault().lookup(DataContent.class); - + contentViewer = Lookup.getDefault().lookup(DataContent.class); + //property listener to send nodes to content viewer nodeSelListener = new PropertyChangeListener() { - /** * Propagates changes in the current select node from the * DataResultViewer to the DataContentTopComponent */ @Override public void propertyChange(PropertyChangeEvent evt) { + if (!Case.isCaseOpen()) { + //handle in-between condition when case is being closed + //and legacy selection events are pumped + return; + } + String changed = evt.getPropertyName(); // change that should affect view @@ -77,10 +82,10 @@ public abstract class AbstractDataResultViewer extends JPanel implements setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); try { Node selectedNode = getSelectedNode(); - + nodeSelected(selectedNode); - + if (selectedNode != null) { // there's a new/changed node to display @@ -142,10 +147,11 @@ public abstract class AbstractDataResultViewer extends JPanel implements @Override public void resetComponent() { } - + /** - * Called when a new node has been selected in the result viewer - * Can update the viewer, etc. + * Called when a new node has been selected in the result viewer Can update + * the viewer, etc. + * * @param selectedNode the new node currently selected */ public abstract void nodeSelected(Node selectedNode); @@ -168,7 +174,7 @@ public abstract class AbstractDataResultViewer extends JPanel implements logger.log(Level.WARNING, "Couldn't set selected nodes.", ex); } } - + @Override public void setContentViewer(DataContent contentViewer) { this.contentViewer = contentViewer; diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java index ed779dcca4..ec74c5a212 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java @@ -595,14 +595,18 @@ public final class DirectoryTreeTopComponent extends TopComponent implements Dat /** * Event handler to run when selection changed - * + * * TODO this needs to be revised - * + * * @param oldNodes - * @param newNodes + * @param newNodes */ private void respondSelection(final Node[] oldNodes, final Node[] newNodes) { - + if (!Case.isCaseOpen()) { + //handle in-between condition when case is being closed + //and legacy selection events are pumped + return; + } //this looks redundant? // if (getSelectedNode() == null && oldNodes != null) { // try { From fd9324f63d7c69a00e5e2b01283b725c9ef9c11a Mon Sep 17 00:00:00 2001 From: adam-m Date: Wed, 20 Mar 2013 12:46:48 -0400 Subject: [PATCH 4/6] update news for release --- NEWS.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/NEWS.txt b/NEWS.txt index 0a174b445f..cd2c3f4533 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -1,4 +1,4 @@ ----------------- VERSION Current (development) -------------- +---------------- VERSION 3.0.5 -------------- New features: - Archive extractor ingest module (uses 7zip) @@ -7,7 +7,7 @@ New features: Improvements: - Sleuthkit-4.0.2 and libewf-20130128 - improved image loading in Media View and Thumbnail View (faster loading, handles large files better) -- improve Keyword Search file indexing (decision whether to index using detected mime-type instead of file extension) +- improve Keyword Search file indexing (use detected mime-type instead of file extension) - show children counts in directory tree Bugfixes: From 5287e9b0531ec18e302cc02ee0185095874d99a2 Mon Sep 17 00:00:00 2001 From: adam-m Date: Wed, 20 Mar 2013 12:49:40 -0400 Subject: [PATCH 5/6] catch out of memory error from modules in file ingest pipeline, in addition to Exception, since they are different --- Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java index 518ab920d6..848aef6b82 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java @@ -899,6 +899,10 @@ public class IngestManager { logger.log(Level.SEVERE, "Error: unexpected exception from module: " + module.getName(), e); stats.addError(module); } + catch (OutOfMemoryError e) { + logger.log(Level.SEVERE, "Error: out of memory from module: " + module.getName(), e); + stats.addError(module); + } } //end for every module //free the internal file resource after done with every module From ee8ef11882409ac8a6ac20017d3619722e88b4df Mon Sep 17 00:00:00 2001 From: adam-m Date: Wed, 20 Mar 2013 15:13:07 -0400 Subject: [PATCH 6/6] update modules versions for the release --- Core/manifest.mf | 2 +- Core/nbproject/project.properties | 2 +- ExifParser/manifest.mf | 2 +- ExifParser/nbproject/project.properties | 2 +- ExifParser/nbproject/project.xml | 2 +- HashDatabase/manifest.mf | 2 +- HashDatabase/nbproject/project.properties | 2 +- HashDatabase/nbproject/project.xml | 2 +- KeywordSearch/manifest.mf | 2 +- KeywordSearch/nbproject/project.properties | 2 +- KeywordSearch/nbproject/project.xml | 2 +- RecentActivity/manifest.mf | 2 +- RecentActivity/nbproject/project.properties | 2 +- RecentActivity/nbproject/project.xml | 2 +- SevenZip/nbproject/project.xml | 2 +- Testing/manifest.mf | 2 +- Testing/nbproject/project.properties | 2 +- Testing/nbproject/project.xml | 2 +- Timeline/manifest.mf | 1 + Timeline/nbproject/project.xml | 2 +- thunderbirdparser/manifest.mf | 2 +- thunderbirdparser/nbproject/project.properties | 2 +- thunderbirdparser/nbproject/project.xml | 4 ++-- 23 files changed, 24 insertions(+), 23 deletions(-) diff --git a/Core/manifest.mf b/Core/manifest.mf index a671f42879..049f93c861 100644 --- a/Core/manifest.mf +++ b/Core/manifest.mf @@ -2,7 +2,7 @@ Manifest-Version: 1.0 OpenIDE-Module: org.sleuthkit.autopsy.core/7 OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/core/Bundle.properties OpenIDE-Module-Layer: org/sleuthkit/autopsy/core/layer.xml -OpenIDE-Module-Implementation-Version: 6 +OpenIDE-Module-Implementation-Version: 7 OpenIDE-Module-Requires: org.openide.windows.WindowManager, org.netbeans.api.javahelp.Help AutoUpdate-Show-In-Client: true AutoUpdate-Essential-Module: true diff --git a/Core/nbproject/project.properties b/Core/nbproject/project.properties index 73d8710d32..fcae93871e 100644 --- a/Core/nbproject/project.properties +++ b/Core/nbproject/project.properties @@ -6,5 +6,5 @@ license.file=../LICENSE-2.0.txt nbm.homepage=http://www.sleuthkit.org/ nbm.module.author=Brian Carrier nbm.needs.restart=true -spec.version.base=5.1 +spec.version.base=5.2 diff --git a/ExifParser/manifest.mf b/ExifParser/manifest.mf index 63167f23a4..bed881d309 100644 --- a/ExifParser/manifest.mf +++ b/ExifParser/manifest.mf @@ -1,6 +1,6 @@ Manifest-Version: 1.0 AutoUpdate-Show-In-Client: true OpenIDE-Module: org.sleuthkit.autopsy.exifparser/3 -OpenIDE-Module-Implementation-Version: 6 +OpenIDE-Module-Implementation-Version: 7 OpenIDE-Module-Layer: org/sleuthkit/autopsy/exifparser/layer.xml OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/exifparser/Bundle.properties diff --git a/ExifParser/nbproject/project.properties b/ExifParser/nbproject/project.properties index 6f48597d02..f278b6de1b 100644 --- a/ExifParser/nbproject/project.properties +++ b/ExifParser/nbproject/project.properties @@ -3,4 +3,4 @@ javac.compilerargs=-Xlint -Xlint:-serial license.file=../LICENSE-2.0.txt nbm.homepage=http://www.sleuthkit.org/autopsy/ nbm.needs.restart=true -spec.version.base=1.0 +spec.version.base=1.1 diff --git a/ExifParser/nbproject/project.xml b/ExifParser/nbproject/project.xml index 6f5571f491..8bc8dc2781 100644 --- a/ExifParser/nbproject/project.xml +++ b/ExifParser/nbproject/project.xml @@ -12,7 +12,7 @@ 7 - 5.0 + 5.2 diff --git a/HashDatabase/manifest.mf b/HashDatabase/manifest.mf index afdd2b92bd..3b7e745580 100644 --- a/HashDatabase/manifest.mf +++ b/HashDatabase/manifest.mf @@ -1,7 +1,7 @@ Manifest-Version: 1.0 AutoUpdate-Show-In-Client: true OpenIDE-Module: org.sleuthkit.autopsy.hashdatabase/3 -OpenIDE-Module-Implementation-Version: 6 +OpenIDE-Module-Implementation-Version: 7 OpenIDE-Module-Layer: org/sleuthkit/autopsy/hashdatabase/layer.xml OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/hashdatabase/Bundle.properties diff --git a/HashDatabase/nbproject/project.properties b/HashDatabase/nbproject/project.properties index f278b6de1b..0735c621fa 100644 --- a/HashDatabase/nbproject/project.properties +++ b/HashDatabase/nbproject/project.properties @@ -3,4 +3,4 @@ javac.compilerargs=-Xlint -Xlint:-serial license.file=../LICENSE-2.0.txt nbm.homepage=http://www.sleuthkit.org/autopsy/ nbm.needs.restart=true -spec.version.base=1.1 +spec.version.base=1.2 diff --git a/HashDatabase/nbproject/project.xml b/HashDatabase/nbproject/project.xml index fb4111eff7..373b6a39f7 100644 --- a/HashDatabase/nbproject/project.xml +++ b/HashDatabase/nbproject/project.xml @@ -78,7 +78,7 @@ 7 - 5.0 + 5.2 diff --git a/KeywordSearch/manifest.mf b/KeywordSearch/manifest.mf index 4965047fae..693f2caa22 100644 --- a/KeywordSearch/manifest.mf +++ b/KeywordSearch/manifest.mf @@ -1,7 +1,7 @@ Manifest-Version: 1.0 AutoUpdate-Show-In-Client: true OpenIDE-Module: org.sleuthkit.autopsy.keywordsearch/5 -OpenIDE-Module-Implementation-Version: 6 +OpenIDE-Module-Implementation-Version: 7 OpenIDE-Module-Install: org/sleuthkit/autopsy/keywordsearch/Installer.class OpenIDE-Module-Layer: org/sleuthkit/autopsy/keywordsearch/layer.xml OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/keywordsearch/Bundle.properties diff --git a/KeywordSearch/nbproject/project.properties b/KeywordSearch/nbproject/project.properties index 48e8b51efd..080c464e8a 100644 --- a/KeywordSearch/nbproject/project.properties +++ b/KeywordSearch/nbproject/project.properties @@ -3,4 +3,4 @@ javac.compilerargs=-Xlint -Xlint:-serial license.file=../LICENSE-2.0.txt nbm.homepage=http://www.sleuthkit.org/autopsy/ nbm.needs.restart=true -spec.version.base=3.0 +spec.version.base=3.1 diff --git a/KeywordSearch/nbproject/project.xml b/KeywordSearch/nbproject/project.xml index 28c7220f9b..7684af33da 100644 --- a/KeywordSearch/nbproject/project.xml +++ b/KeywordSearch/nbproject/project.xml @@ -96,7 +96,7 @@ 7 - 5.0 + 5.2 diff --git a/RecentActivity/manifest.mf b/RecentActivity/manifest.mf index e4538b9a0d..1a039f7b59 100644 --- a/RecentActivity/manifest.mf +++ b/RecentActivity/manifest.mf @@ -1,6 +1,6 @@ Manifest-Version: 1.0 OpenIDE-Module: org.sleuthkit.autopsy.recentactivity/4 -OpenIDE-Module-Implementation-Version: 6 +OpenIDE-Module-Implementation-Version: 7 OpenIDE-Module-Layer: org/sleuthkit/autopsy/recentactivity/layer.xml OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/recentactivity/Bundle.properties OpenIDE-Module-Requires: diff --git a/RecentActivity/nbproject/project.properties b/RecentActivity/nbproject/project.properties index dc281ec309..8f5a495086 100644 --- a/RecentActivity/nbproject/project.properties +++ b/RecentActivity/nbproject/project.properties @@ -4,4 +4,4 @@ javac.compilerargs=-Xlint -Xlint:-serial license.file=../LICENSE-2.0.txt nbm.homepage=http://www.sleuthkit.org/autopsy/ nbm.needs.restart=true -spec.version.base=2.0 +spec.version.base=2.1 diff --git a/RecentActivity/nbproject/project.xml b/RecentActivity/nbproject/project.xml index 3642a61775..edb627a7c3 100644 --- a/RecentActivity/nbproject/project.xml +++ b/RecentActivity/nbproject/project.xml @@ -36,7 +36,7 @@ 7 - 5.0 + 5.2 diff --git a/SevenZip/nbproject/project.xml b/SevenZip/nbproject/project.xml index e2c3999e3f..3260919c48 100644 --- a/SevenZip/nbproject/project.xml +++ b/SevenZip/nbproject/project.xml @@ -21,7 +21,7 @@ 7 - 5.0 + 5.2 diff --git a/Testing/manifest.mf b/Testing/manifest.mf index 95a13fd230..8c10f74029 100644 --- a/Testing/manifest.mf +++ b/Testing/manifest.mf @@ -1,6 +1,6 @@ Manifest-Version: 1.0 AutoUpdate-Show-In-Client: false OpenIDE-Module: org.sleuthkit.autopsy.testing/3 -OpenIDE-Module-Implementation-Version: 5 +OpenIDE-Module-Implementation-Version: 6 OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/testing/Bundle.properties diff --git a/Testing/nbproject/project.properties b/Testing/nbproject/project.properties index f278b6de1b..0735c621fa 100644 --- a/Testing/nbproject/project.properties +++ b/Testing/nbproject/project.properties @@ -3,4 +3,4 @@ javac.compilerargs=-Xlint -Xlint:-serial license.file=../LICENSE-2.0.txt nbm.homepage=http://www.sleuthkit.org/autopsy/ nbm.needs.restart=true -spec.version.base=1.1 +spec.version.base=1.2 diff --git a/Testing/nbproject/project.xml b/Testing/nbproject/project.xml index 6b7be2ee79..f5c0b17983 100644 --- a/Testing/nbproject/project.xml +++ b/Testing/nbproject/project.xml @@ -12,7 +12,7 @@ 7 - 5.0 + 5.2 diff --git a/Timeline/manifest.mf b/Timeline/manifest.mf index 9b3f1ece3d..8aeb1a6102 100644 --- a/Timeline/manifest.mf +++ b/Timeline/manifest.mf @@ -4,4 +4,5 @@ OpenIDE-Module-Layer: org/sleuthkit/autopsy/timeline/layer.xml OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/timeline/Bundle.properties OpenIDE-Module-Requires: org.openide.windows.WindowManager OpenIDE-Module-Specification-Version: 1.0 +OpenIDE-Module-Implementation-Version: 1 diff --git a/Timeline/nbproject/project.xml b/Timeline/nbproject/project.xml index 70436e4da4..eb93ea7619 100644 --- a/Timeline/nbproject/project.xml +++ b/Timeline/nbproject/project.xml @@ -94,7 +94,7 @@ 7 - 3.0 + 5.2 diff --git a/thunderbirdparser/manifest.mf b/thunderbirdparser/manifest.mf index 01f897fda3..ceb5c83656 100644 --- a/thunderbirdparser/manifest.mf +++ b/thunderbirdparser/manifest.mf @@ -1,7 +1,7 @@ Manifest-Version: 1.0 AutoUpdate-Show-In-Client: true OpenIDE-Module: org.sleuthkit.autopsy.thunderbirdparser/3 -OpenIDE-Module-Implementation-Version: 6 +OpenIDE-Module-Implementation-Version: 7 OpenIDE-Module-Layer: org/sleuthkit/autopsy/thunderbirdparser/layer.xml OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/thunderbirdparser/Bundle.properties diff --git a/thunderbirdparser/nbproject/project.properties b/thunderbirdparser/nbproject/project.properties index 6f48597d02..f278b6de1b 100644 --- a/thunderbirdparser/nbproject/project.properties +++ b/thunderbirdparser/nbproject/project.properties @@ -3,4 +3,4 @@ javac.compilerargs=-Xlint -Xlint:-serial license.file=../LICENSE-2.0.txt nbm.homepage=http://www.sleuthkit.org/autopsy/ nbm.needs.restart=true -spec.version.base=1.0 +spec.version.base=1.1 diff --git a/thunderbirdparser/nbproject/project.xml b/thunderbirdparser/nbproject/project.xml index d6205e03cd..6a76a94f15 100644 --- a/thunderbirdparser/nbproject/project.xml +++ b/thunderbirdparser/nbproject/project.xml @@ -12,7 +12,7 @@ 7 - 5.0 + 5.2 @@ -21,7 +21,7 @@ 5 - 3.0 + 3.1