You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2013/12/20 09:34:57 UTC

svn commit: r1552534 - /manifoldcf/branches/CONNECTORS-553/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java

Author: kwright
Date: Fri Dec 20 08:34:57 2013
New Revision: 1552534

URL: http://svn.apache.org/r1552534
Log:
Consistent error handling

Modified:
    manifoldcf/branches/CONNECTORS-553/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java

Modified: manifoldcf/branches/CONNECTORS-553/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-553/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java?rev=1552534&r1=1552533&r2=1552534&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-553/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java (original)
+++ manifoldcf/branches/CONNECTORS-553/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java Fri Dec 20 08:34:57 2013
@@ -173,9 +173,7 @@ public class EmailConnector extends org.
         throw new ManifoldCFException("Error checking the connection: No default folder.");
       }
     } catch (MessagingException e) {
-      Logging.connectors.warn(
-        "Email: Error checking the connection: "+e.getMessage(),e);
-      throw new ManifoldCFException("Error checking the connection: "+e.getMessage(),e);
+      handleMessagingException(e,"checking the connection");
     }
   }
 
@@ -300,8 +298,7 @@ public class EmailConnector extends org.
           folder.close(false);
         }
       } catch (MessagingException e) {
-        Logging.connectors.error("Email: Error finding emails: " + e.getMessage(), e);
-        throw new ManifoldCFException(e.getMessage(), e);
+        handleMessagingException(e, "finding emails");
       }
     }
 
@@ -385,8 +382,7 @@ public class EmailConnector extends org.
         store = thisStore;
         
       } catch (MessagingException e) {
-        Logging.connectors.error("Email: Connection error: "+e.getMessage(),e);
-        throw new ManifoldCFException("Email connection error: "+e.getMessage(), e);
+        handleMessagingException(e, "connecting");
       }
     }
     sessionExpiration = System.currentTimeMillis() + EmailConfig.SESSION_EXPIRATION_MILLISECONDS;
@@ -586,12 +582,9 @@ public class EmailConnector extends org.
           folder.close(false);
         }
       } catch (MessagingException e) {
-        Logging.connectors.error("Email exception: "+e.getMessage(),e);
-        throw new ManifoldCFException("Email exception: "+e.getMessage(),e);
-      } catch (InterruptedIOException e) {
-        throw new ManifoldCFException(e.getMessage(), e,
-            ManifoldCFException.INTERRUPTED);
+        handleMessagingException(e, "processing email");
       } catch (IOException e) {
+        handleIOException(e, "processing email");
         throw new ManifoldCFException(e.getMessage(), e);
       }
     }
@@ -1062,12 +1055,39 @@ public class EmailConnector extends org.
     }
     catch (MessagingException e)
     {
-      Logging.connectors.error("Email: Can't get folder list: "+e.getMessage(),e);
-      throw new ManifoldCFException("Can't get folder list: "+e.getMessage(),e);
+      handleMessagingException(e,"getting folder list");
     }
     String[] rval = folderList.toArray(new String[0]);
     java.util.Arrays.sort(rval);
     return rval;
   }
 
+  // Handle Messaging exceptions in a consistent global manner
+  protected static void handleMessagingException(MessagingException e, String context)
+    throws ManifoldCFException, ServiceInterruption
+  {
+    Logging.connectors.error("Email: Error "+context+": "+e.getMessage(),e);
+    throw new ManifoldCFException("Error "+context+": "+e.getMessage(),e);
+  }
+  
+  // Handle IO Exception
+  protected static void handleIOException(IOException e, String context)
+    throws ManifoldCFException, ServiceInterruption
+  {
+    if (e instanceof java.net.SocketTimeoutException)
+    {
+      Logging.connectors.error("Email: Socket timeout "+context+": "+e.getMessage(),e);
+      throw new ManifoldCFException("Socket timeout: "+e.getMessage(),e);
+    }
+    else if (e instanceof InterruptedIOException)
+    {
+      throw new ManifoldCFException("Interrupted: "+e.getMessage(),ManifoldCFException.INTERRUPTED);
+    }
+    else
+    {
+      Logging.connectors.error("Email: IO error "+context+": "+e.getMessage(),e);
+      throw new ManifoldCFException("IO error "+context+": "+e.getMessage(),e);
+    }
+  }
+
 }
\ No newline at end of file