diff --git a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/ImageExtractor.java b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/ImageExtractor.java index 1493bb7dca..cfc1682f97 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/ImageExtractor.java +++ b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/ImageExtractor.java @@ -122,7 +122,7 @@ class ImageExtractor { } return false; } catch (TskCoreException ex) { - logger.log(Level.WARNING, "Error executing FileTypeDetector.getFileType()", ex); // NON-NLS + logger.log(Level.SEVERE, "Error executing FileTypeDetector.getFileType()", ex); // NON-NLS return false; } } @@ -154,7 +154,7 @@ class ImageExtractor { } } } catch (TskCoreException e) { - logger.log(Level.WARNING, String.format("Error checking if file already has been processed, skipping: %s", parentFileName), e); //NON-NLS + logger.log(Level.SEVERE, String.format("Error checking if file already has been processed, skipping: %s", parentFileName), e); //NON-NLS return; } switch (abstractFileExtractionFormat) { @@ -191,7 +191,7 @@ class ImageExtractor { extractedImage.getCtime(), extractedImage.getCrtime(), extractedImage.getAtime(), extractedImage.getAtime(), true, abstractFile, null, EmbeddedFileExtractorModuleFactory.getModuleName(), null, null, TskData.EncodingType.XOR1)); } catch (TskCoreException ex) { - logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.extractImage.addToDB.exception.msg"), ex); //NON-NLS + logger.log(Level.SEVERE, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.extractImage.addToDB.exception.msg"), ex); //NON-NLS } } if (!listOfExtractedImages.isEmpty()) { @@ -209,16 +209,20 @@ class ImageExtractor { * extracted. */ private List extractImagesFromDoc(AbstractFile af) { - List listOfExtractedImages; - HWPFDocument doc = null; + List listOfAllPictures; + try { - doc = new HWPFDocument(new ReadContentInputStream(af)); - } catch (OldFileFormatException ex) { + HWPFDocument doc = new HWPFDocument(new ReadContentInputStream(af)); + PicturesTable pictureTable = doc.getPicturesTable(); + listOfAllPictures = pictureTable.getAllPictures(); + } catch (OldFileFormatException | IOException ex) { + // OldFileFormatException: // Thrown when the document version is unsupported (Word 95 and // older) - return null; - } catch (IOException ex) { + + // IOException: // Thrown when the document has issues being read. + return null; } catch (Throwable ex) { // instantiating POI containers throw RuntimeExceptions @@ -226,17 +230,6 @@ class ImageExtractor { return null; } - PicturesTable pictureTable = null; - List listOfAllPictures = null; - try { - pictureTable = doc.getPicturesTable(); - listOfAllPictures = pictureTable.getAllPictures(); - } catch (Exception ex) { - // log internal Java and Apache errors as WARNING - logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS - return null; - } - String outputFolderPath; if (listOfAllPictures.isEmpty()) { return null; @@ -246,7 +239,7 @@ class ImageExtractor { if (outputFolderPath == null) { return null; } - listOfExtractedImages = new ArrayList<>(); + List listOfExtractedImages = new ArrayList<>(); byte[] data = null; for (org.apache.poi.hwpf.usermodel.Picture picture : listOfAllPictures) { String fileName = picture.suggestFullFileName(); @@ -274,29 +267,24 @@ class ImageExtractor { * extracted. */ private List extractImagesFromDocx(AbstractFile af) { - List listOfExtractedImages; - XWPFDocument docx = null; + List listOfAllPictures = null; + try { - docx = new XWPFDocument(new ReadContentInputStream(af)); - } catch (POIXMLException ex) { + XWPFDocument docx = new XWPFDocument(new ReadContentInputStream(af)); + listOfAllPictures = docx.getAllPictures(); + } catch (POIXMLException | IOException ex) { + // POIXMLException: // Thrown when document fails to load - return null; - } catch (IOException ex) { + + // IOException: // Thrown when the document has issues being read. + return null; } catch (Throwable ex) { // instantiating POI containers throw RuntimeExceptions logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.docxContainer.init.err", af.getName()), ex); //NON-NLS return null; } - List listOfAllPictures = null; - try { - listOfAllPictures = docx.getAllPictures(); - } catch (Exception ex) { - // log internal Java and Apache errors as WARNING - logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS - return null; - } // if no images are extracted from the PPT, return null, else initialize // the output folder for image extraction. @@ -310,7 +298,7 @@ class ImageExtractor { logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.extractImageFrom.outputPath.exception.msg", af.getName())); //NON-NLS return null; } - listOfExtractedImages = new ArrayList<>(); + List listOfExtractedImages = new ArrayList<>(); byte[] data = null; for (XWPFPictureData xwpfPicture : listOfAllPictures) { String fileName = xwpfPicture.getFileName(); @@ -336,15 +324,18 @@ class ImageExtractor { * extracted. */ private List extractImagesFromPpt(AbstractFile af) { - List listOfExtractedImages; - SlideShow ppt = null; + PictureData[] listOfAllPictures = null; + try { - ppt = new SlideShow(new ReadContentInputStream(af)); - } catch (OldFileFormatException ex) { + SlideShow ppt = new SlideShow(new ReadContentInputStream(af)); + listOfAllPictures = ppt.getPictureData(); + } catch (OldFileFormatException | IOException ex) { + // OldFileFormatException: // Thrown when the document version is unsupported - return null; - } catch (IOException ex) { + + // IOException: // Thrown when the document has issues being read + return null; } catch (Throwable ex) { // instantiating POI containers throw RuntimeExceptions @@ -352,16 +343,6 @@ class ImageExtractor { return null; } - //extract all pictures contained in the presentation - PictureData[] listOfAllPictures = null; - try { - listOfAllPictures = ppt.getPictureData(); - } catch (Exception ex) { - // log internal Java and Apache errors as WARNING - logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS - return null; - } - // if no images are extracted from the PPT, return null, else initialize // the output folder for image extraction. String outputFolderPath; @@ -378,7 +359,7 @@ class ImageExtractor { // extract the images to the above initialized outputFolder. // extraction path - outputFolder/image_number.ext int i = 0; - listOfExtractedImages = new ArrayList<>(); + List listOfExtractedImages = new ArrayList<>(); byte[] data = null; for (PictureData pictureData : listOfAllPictures) { @@ -429,29 +410,24 @@ class ImageExtractor { * extracted. */ private List extractImagesFromPptx(AbstractFile af) { - List listOfExtractedImages; - XMLSlideShow pptx; + List listOfAllPictures = null; + try { - pptx = new XMLSlideShow(new ReadContentInputStream(af)); - } catch (POIXMLException ex) { + XMLSlideShow pptx = new XMLSlideShow(new ReadContentInputStream(af)); + listOfAllPictures = pptx.getAllPictures(); + } catch (POIXMLException | IOException ex) { + // POIXMLException: // Thrown when document fails to load. - return null; - } catch (IOException ex) { + + // IOException: // Thrown when the document has issues being read + return null; } catch (Throwable ex) { // instantiating POI containers throw RuntimeExceptions logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.pptxContainer.init.err", af.getName()), ex); //NON-NLS return null; } - List listOfAllPictures = null; - try { - listOfAllPictures = pptx.getAllPictures(); - } catch (Exception ex) { - // log internal Java and Apache errors as WARNING - logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS - return null; - } // if no images are extracted from the PPT, return null, else initialize // the output folder for image extraction. @@ -466,7 +442,7 @@ class ImageExtractor { return null; } - listOfExtractedImages = new ArrayList<>(); + List listOfExtractedImages = new ArrayList<>(); byte[] data = null; for (XSLFPictureData xslsPicture : listOfAllPictures) { @@ -498,16 +474,18 @@ class ImageExtractor { * extracted. */ private List extractImagesFromXls(AbstractFile af) { - List listOfExtractedImages; - - Workbook xls; + List listOfAllPictures = null; + try { - xls = new HSSFWorkbook(new ReadContentInputStream(af)); - } catch (OldFileFormatException ex) { + Workbook xls = new HSSFWorkbook(new ReadContentInputStream(af)); + listOfAllPictures = xls.getAllPictures(); + } catch (OldFileFormatException | IOException ex) { + // OldFileFormatException: // Thrown when the document version is unsupported - return null; - } catch (IOException ex) { + + // IOException: // Thrown when the document has issues being read + return null; } catch (Throwable ex) { // instantiating POI containers throw RuntimeExceptions @@ -515,15 +493,6 @@ class ImageExtractor { return null; } - List listOfAllPictures = null; - try { - listOfAllPictures = xls.getAllPictures(); - } catch (Exception ex) { - // log internal Java and Apache errors as WARNING - logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS - return null; - } - // if no images are extracted from the PPT, return null, else initialize // the output folder for image extraction. String outputFolderPath; @@ -538,7 +507,7 @@ class ImageExtractor { } int i = 0; - listOfExtractedImages = new ArrayList<>(); + List listOfExtractedImages = new ArrayList<>(); byte[] data = null; for (org.apache.poi.ss.usermodel.PictureData pictureData : listOfAllPictures) { String imageName = UNKNOWN_NAME_PREFIX + i + "." + pictureData.suggestFileExtension(); //NON-NLS @@ -566,15 +535,18 @@ class ImageExtractor { * extracted. */ private List extractImagesFromXlsx(AbstractFile af) { - List listOfExtractedImages; - Workbook xlsx; + List listOfAllPictures = null; + try { - xlsx = new XSSFWorkbook(new ReadContentInputStream(af)); - } catch (POIXMLException ex) { + Workbook xlsx = new XSSFWorkbook(new ReadContentInputStream(af)); + listOfAllPictures = xlsx.getAllPictures(); + } catch (POIXMLException | IOException ex) { + // POIXMLException: // Thrown when document fails to load. - return null; - } catch (IOException ex) { + + // IOException: // Thrown when the document has issues being read + return null; } catch (Throwable ex) { // instantiating POI containers throw RuntimeExceptions @@ -582,15 +554,6 @@ class ImageExtractor { return null; } - List listOfAllPictures = null; - try { - listOfAllPictures = xlsx.getAllPictures(); - } catch (Exception ex) { - // log internal Java and Apache errors as WARNING - logger.log(Level.WARNING, NbBundle.getMessage(this.getClass(), "EmbeddedFileExtractorIngestModule.ImageExtractor.processing.err", af.getName()), ex); //NON-NLS - return null; - } - // if no images are extracted from the PPT, return null, else initialize // the output folder for image extraction. String outputFolderPath; @@ -605,7 +568,7 @@ class ImageExtractor { } int i = 0; - listOfExtractedImages = new ArrayList<>(); + List listOfExtractedImages = new ArrayList<>(); byte[] data = null; for (org.apache.poi.ss.usermodel.PictureData pictureData : listOfAllPictures) { String imageName = UNKNOWN_NAME_PREFIX + i + "." + pictureData.suggestFileExtension();