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);
+ }
}
}