Author: kwright
Date: Thu Nov 26 14:43:38 2015
New Revision: 1716705

URL: http://svn.apache.org/viewvc?rev=1716705&view=rev
Log:
Fix for CONNECTORS-1260.

Modified:
    manifoldcf/trunk/CHANGES.txt
    
manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java

Modified: manifoldcf/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/CHANGES.txt?rev=1716705&r1=1716704&r2=1716705&view=diff
==============================================================================
--- manifoldcf/trunk/CHANGES.txt (original)
+++ manifoldcf/trunk/CHANGES.txt Thu Nov 26 14:43:38 2015
@@ -3,6 +3,9 @@ $Id$
 
 ======================= 2.3-dev =====================
 
+CONNECTORS-1260: Fix completely broken email connector.
+(Karl Wright, Julien Massiera)
+
 CONNECTORS-1259: Use Travis CI.
 (Shinichiro Abe)
 

Modified: 
manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java?rev=1716705&r1=1716704&r2=1716705&view=diff
==============================================================================
--- 
manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java
 (original)
+++ 
manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java
 Thu Nov 26 14:43:38 2015
@@ -520,14 +520,14 @@ public class EmailConnector extends org.
             }
             if (msg == null) {
               // email was not found
-              activities.deleteDocument(id);
+              activities.deleteDocument(documentIdentifier);
               continue;
             }
               
             if (!activities.checkURLIndexable(msgURL)) {
               errorCode = activities.EXCLUDED_URL;
               errorDesc = "Excluded because of URL ('"+msgURL+"')";
-              activities.noDocument(id, version);
+              activities.noDocument(documentIdentifier, version);
               continue;
             }
               
@@ -535,7 +535,7 @@ public class EmailConnector extends org.
             if (!activities.checkLengthIndexable(fileLength)) {
               errorCode = activities.EXCLUDED_LENGTH;
               errorDesc = "Excluded because of length ("+fileLength+")";
-              activities.noDocument(id, version);
+              activities.noDocument(documentIdentifier, version);
               continue;
             }
               
@@ -543,7 +543,7 @@ public class EmailConnector extends org.
             if (!activities.checkDateIndexable(sentDate)) {
               errorCode = activities.EXCLUDED_DATE;
               errorDesc = "Excluded because of date ("+sentDate+")";
-              activities.noDocument(id, version);
+              activities.noDocument(documentIdentifier, version);
               continue;
             }
             
@@ -551,7 +551,7 @@ public class EmailConnector extends org.
             if (!activities.checkMimeTypeIndexable(mimeType)) {
               errorCode = activities.EXCLUDED_DATE;
               errorDesc = "Excluded because of mime type ('"+mimeType+"')";
-              activities.noDocument(id, version);
+              activities.noDocument(documentIdentifier, version);
               continue;
             }
             
@@ -584,18 +584,23 @@ public class EmailConnector extends org.
                 subject = msg.getSubject();
                 rd.addField(EmailConfig.EMAIL_SUBJECT, subject);
               } else if 
(metadata.toLowerCase().equals(EmailConfig.EMAIL_BODY)) {
-                Multipart mp = (Multipart) msg.getContent();
-                for (int k = 0, n = mp.getCount(); k < n; k++) {
-                  Part part = mp.getBodyPart(k);
-                  String disposition = part.getDisposition();
-                  if ((disposition == null)) {
-                    MimeBodyPart mbp = (MimeBodyPart) part;
-                    if (mbp.isMimeType(EmailConfig.MIMETYPE_TEXT_PLAIN)) {
-                      rd.addField(EmailConfig.EMAIL_BODY, 
mbp.getContent().toString());
-                    } else if (mbp.isMimeType(EmailConfig.MIMETYPE_HTML)) {
-                      rd.addField(EmailConfig.EMAIL_BODY, 
mbp.getContent().toString()); //handle html accordingly. Returns content with 
html tags
+                Object o = msg.getContent();
+                if (o instanceof Multipart) {
+                  Multipart mp = (Multipart) msg.getContent();
+                  for (int k = 0, n = mp.getCount(); k < n; k++) {
+                    Part part = mp.getBodyPart(k);
+                    String disposition = part.getDisposition();
+                    if ((disposition == null)) {
+                      MimeBodyPart mbp = (MimeBodyPart) part;
+                      if (mbp.isMimeType(EmailConfig.MIMETYPE_TEXT_PLAIN)) {
+                        rd.addField(EmailConfig.EMAIL_BODY, 
mbp.getContent().toString());
+                      } else if (mbp.isMimeType(EmailConfig.MIMETYPE_HTML)) {
+                        rd.addField(EmailConfig.EMAIL_BODY, 
mbp.getContent().toString()); //handle html accordingly. Returns content with 
html tags
+                      }
                     }
                   }
+                } else if (o instanceof String) {
+                  rd.addField(EmailConfig.EMAIL_BODY, (String)o);
                 }
               } else if 
(metadata.toLowerCase().equals(EmailConfig.EMAIL_DATE)) {
                 rd.addField(EmailConfig.EMAIL_DATE, sentDate.toString());
@@ -635,7 +640,7 @@ public class EmailConnector extends org.
             InputStream is = msg.getInputStream();
             try {
               rd.setBinary(is, fileLength);
-              activities.ingestDocumentWithException(id, version, msgURL, rd);
+              activities.ingestDocumentWithException(documentIdentifier, 
version, msgURL, rd);
               errorCode = "OK";
               fileLengthLong = new Long(fileLength);
             } finally {


Reply via email to