From 8dc3288b0ab534c0ee1213246637f5eb80ebb95c Mon Sep 17 00:00:00 2001 From: Eugene Livis Date: Fri, 8 Jan 2016 13:49:26 -0500 Subject: [PATCH] Bug fixes --- .../modules/vmextractor/VMExtractorIngestModule.java | 8 +++++++- .../modules/vmextractor/VirtualMachineFinderUtility.java | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VMExtractorIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VMExtractorIngestModule.java index 559de88fbc..d4ce3e7c43 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VMExtractorIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VMExtractorIngestModule.java @@ -131,7 +131,7 @@ final class VMExtractorIngestModule extends DataSourceIngestModuleAdapter { // write the vm file to output folder try { writeVirtualMachineToDisk(vmFile, outputFolderForThisVM); - } catch (IOException ex) { + } catch (Exception ex) { logger.log(Level.SEVERE, String.format("Failed to write virtual machine file %s (id=%d) to disk", vmFile.getName(), vmFile.getId()), ex); MessageNotifyUtil.Notify.error("Failed to extract virtual machine file", String.format("Failed to write virtual machine file %s to disk", vmFile.getName())); } @@ -186,6 +186,12 @@ final class VMExtractorIngestModule extends DataSourceIngestModuleAdapter { private void writeVirtualMachineToDisk(AbstractFile vmFile, String outputFolderForThisVM) throws IOException { // TODO: check available disk space first + + // check if output folder exists + File destinationFolder = Paths.get(outputFolderForThisVM).toFile(); + if (!destinationFolder.exists()) { + destinationFolder.mkdirs(); + } /* * Write the virtual machine file to disk. */ diff --git a/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VirtualMachineFinderUtility.java b/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VirtualMachineFinderUtility.java index 4c4406c5d1..d1fb8f1d2b 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VirtualMachineFinderUtility.java +++ b/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VirtualMachineFinderUtility.java @@ -193,6 +193,10 @@ public final class VirtualMachineFinderUtility { // only returns files, skips folders File file = new File(path); String[] files = file.list((File current, String name) -> new File(current, name).isFile()); + if (files == null) { + // null is returned when folder doesn't exist. need to check this condition, otherwise there is NullPointerException when converting to List + return Collections.emptyList(); + } return new ArrayList<>(Arrays.asList(files)); } }