Author: jukka
Date: Wed Mar  9 15:53:57 2011
New Revision: 1079857

URL: http://svn.apache.org/viewvc?rev=1079857&view=rev
Log:
TIKA-597: Bogus exception handler in 
org.apache.tika.parser.mail.MailContentHandler.body(BodyDescriptor, InputStream)

Use MimeException instead of RuntimeException for passing Tika- and 
SAXExceptions up the call chain.

Modified:
    
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mail/MailContentHandler.java
    
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mail/RFC822Parser.java

Modified: 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mail/MailContentHandler.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mail/MailContentHandler.java?rev=1079857&r1=1079856&r2=1079857&view=diff
==============================================================================
--- 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mail/MailContentHandler.java
 (original)
+++ 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mail/MailContentHandler.java
 Wed Mar  9 15:53:57 2011
@@ -69,9 +69,9 @@ class MailContentHandler implements Cont
             BodyContentHandler bch = new BodyContentHandler(handler);
             parser.parse(is, new EmbeddedContentHandler(bch), submd);
         } catch (SAXException e) {
-            throw new RuntimeException(new TikaException("Failed to parse 
email body content", e));
+            throw new MimeException(e);
         } catch (TikaException e) {
-            throw new RuntimeException(new TikaException("Failed to parse 
email body content", e));
+            throw new MimeException(e);
         }
     }
 
@@ -80,7 +80,7 @@ class MailContentHandler implements Cont
             handler.endElement("p");
             handler.endElement("div");
         } catch (SAXException e) {
-            e.printStackTrace();
+            throw new MimeException(e);
         }
     }
 
@@ -91,7 +91,7 @@ class MailContentHandler implements Cont
         try {
             handler.startDocument();
         } catch (SAXException e) {
-            e.printStackTrace();
+            throw new MimeException(e);
         }
     }
 
@@ -99,7 +99,7 @@ class MailContentHandler implements Cont
         try {
             handler.endDocument();
         } catch (SAXException e) {
-            e.printStackTrace();
+            throw new MimeException(e);
         }
     }
 
@@ -147,7 +147,7 @@ class MailContentHandler implements Cont
             handler.startElement("div", "class", "email-entry");
             handler.startElement("p");
         } catch (SAXException e) {
-            e.printStackTrace();
+            throw new MimeException(e);
         }
     }
 

Modified: 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mail/RFC822Parser.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mail/RFC822Parser.java?rev=1079857&r1=1079856&r2=1079857&view=diff
==============================================================================
--- 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mail/RFC822Parser.java
 (original)
+++ 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mail/RFC822Parser.java
 Wed Mar  9 15:53:57 2011
@@ -59,7 +59,15 @@ public class RFC822Parser implements Par
         try {
             parser.parse(stream);
         } catch (MimeException e) {
-            throw new TikaException(e.getMessage());
+            // Unwrap the exception in case it was not thrown by mime4j
+            Throwable cause = e.getCause();
+            if (cause instanceof TikaException) {
+                throw (TikaException) cause;
+            } else if (cause instanceof SAXException) {
+                throw (SAXException) cause;
+            } else {
+                throw new TikaException("Failed to parse an email message", e);
+            }
         }
     }
 


Reply via email to