From 8c2437157c6f07ef71eb557c2efe7c5b8a8094d5 Mon Sep 17 00:00:00 2001 From: Brian Carrier Date: Thu, 16 May 2019 14:56:41 -0400 Subject: [PATCH] log exceptions. Don't limit text sizes --- .../texttranslation/ui/TranslatedTextViewer.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslatedTextViewer.java b/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslatedTextViewer.java index 4a57368a0b..e9656bb0a9 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslatedTextViewer.java +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslatedTextViewer.java @@ -52,6 +52,8 @@ import org.sleuthkit.autopsy.texttranslation.NoServiceProviderException; import org.sleuthkit.autopsy.texttranslation.TranslationException; import org.sleuthkit.datamodel.Content; import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; import org.sleuthkit.autopsy.coreutils.PlatformUtil; import org.sleuthkit.autopsy.texttranslation.ui.TranslationContentPanel.DisplayDropdownOptions; @@ -61,6 +63,8 @@ import org.sleuthkit.autopsy.texttranslation.ui.TranslationContentPanel.DisplayD @ServiceProvider(service = TextViewer.class, position = 4) public final class TranslatedTextViewer implements TextViewer { + private static final Logger logger = Logger.getLogger(TranslatedTextViewer.class.getName()); + private static final boolean OCR_ENABLED = true; private static final boolean OCR_DISABLED = false; private static final int MAX_SIZE_1MB = 1024000; @@ -169,16 +173,20 @@ public final class TranslatedTextViewer implements TextViewer { try { return getFileText(node); } catch (IOException ex) { + logger.log(Level.WARNING, "Error getting text", ex); return Bundle.TranslatedContentViewer_errorMsg(); } catch (TextExtractor.InitReaderException ex) { + logger.log(Level.WARNING, "Error getting text", ex); return Bundle.TranslatedContentViewer_errorExtractingText(); } } else { try { return translate(getFileText(node)); } catch (IOException ex) { + logger.log(Level.WARNING, "Error translating text", ex); return Bundle.TranslatedContentViewer_errorMsg(); } catch (TextExtractor.InitReaderException ex) { + logger.log(Level.WARNING, "Error translating text", ex); return Bundle.TranslatedContentViewer_errorExtractingText(); } } @@ -247,7 +255,8 @@ public final class TranslatedTextViewer implements TextViewer { } catch (NoServiceProviderException ex) { return Bundle.TranslatedContentViewer_noServiceProvider(); } catch (TranslationException ex) { - return Bundle.TranslatedContentViewer_translationException(); + logger.log(Level.WARNING, "Error translating text", ex); + return Bundle.TranslatedContentViewer_translationException() + " (" + ex.getMessage() + ")"; } } @@ -287,7 +296,7 @@ public final class TranslatedTextViewer implements TextViewer { //Correct for UTF-8 byte[] resultInUTF8Bytes = result.getBytes("UTF8"); - byte[] trimTo1MB = Arrays.copyOfRange(resultInUTF8Bytes, 0, MAX_SIZE_1MB / 1000); + byte[] trimTo1MB = Arrays.copyOfRange(resultInUTF8Bytes, 0, MAX_SIZE_1MB ); return new String(trimTo1MB, "UTF-8"); } @@ -333,7 +342,8 @@ public final class TranslatedTextViewer implements TextViewer { bytesRead += read; } - return textBuilder.toString(); + // The trim is on here because HTML files were observed with nearly 1MB of white space at the end + return textBuilder.toString().trim(); } /**