You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by da...@apache.org on 2002/10/30 13:45:11 UTC

cvs commit: jakarta-james/src/java/org/apache/james/fetchpop FetchScheduler.java FetchPOP.java

danny       2002/10/30 04:45:11

  Modified:    src/java/org/apache/james/fetchpop FetchScheduler.java
                        FetchPOP.java
  Log:
  logged a message to confirm starting, 
  but mainly imporved exception catching in FetchPOP 
  to stop a bug which meant any message failing to be inserted in the spool killed the rest of the task.
  
  Revision  Changes    Path
  1.4       +2 -1      jakarta-james/src/java/org/apache/james/fetchpop/FetchScheduler.java
  
  Index: FetchScheduler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-james/src/java/org/apache/james/fetchpop/FetchScheduler.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- FetchScheduler.java	2 Oct 2002 06:12:02 -0000	1.3
  +++ FetchScheduler.java	30 Oct 2002 12:45:11 -0000	1.4
  @@ -91,6 +91,7 @@
                   scheduler.addTrigger(fetchTaskName, fetchTrigger, fp);
                   theFetchTaskNames.add(fetchTaskName);
               }
  +            getLogger().info("Fetch POP Started");
               System.out.println("Fetch POP Started ");
           } else {
               getLogger().info("Fetch POP Disabled");
  
  
  
  1.5       +20 -28    jakarta-james/src/java/org/apache/james/fetchpop/FetchPOP.java
  
  Index: FetchPOP.java
  ===================================================================
  RCS file: /home/cvs/jakarta-james/src/java/org/apache/james/fetchpop/FetchPOP.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FetchPOP.java	2 Oct 2002 06:12:02 -0000	1.4
  +++ FetchPOP.java	30 Oct 2002 12:45:11 -0000	1.5
  @@ -11,10 +11,8 @@
   import java.net.SocketException;
   import java.util.Enumeration;
   import java.util.Vector;
  -
   import javax.mail.MessagingException;
   import javax.mail.internet.MimeMessage;
  -
   import org.apache.avalon.cornerstone.services.scheduler.Target;
   import org.apache.avalon.framework.component.ComponentException;
   import org.apache.avalon.framework.component.ComponentManager;
  @@ -37,32 +35,26 @@
    * 
    */
   public class FetchPOP extends AbstractLogEnabled implements Configurable, Target {
  -
       /**
        * The MailServer service
        */
       private MailServer server;
  -
       /**
        * The unique, identifying name for this task
        */
       private String fetchTaskName;
  -
       /**
        * The POP3 server host name for this fetch task
        */
       private String popHost;
  -
       /**
        * The POP3 user name for this fetch task
        */
       private String popUser;
  -
       /**
        * The POP3 user password for this fetch task
        */
       private String popPass;
  -
       /**
        * @see org.apache.avalon.cornerstone.services.scheduler.Target#targetTriggered(String)
        */
  @@ -84,15 +76,22 @@
               for (int i = 0; i < messages.length; i++) {
                   InputStream in = new ReaderInputStream(pop.retrieveMessage(messages[i].number));
                   getLogger().debug("Retrieve:" + pop.getReplyString());
  -                MimeMessage message = new MimeMessage(null, in);
  -                in.close();
  -                message.addHeader("X-fetched-from", fetchTaskName);
  -                message.saveChanges();
  -                if (getLogger().isDebugEnabled()) {
  -                    getLogger().debug("Sent message " + message.toString());
  +                MimeMessage message = null;
  +                try {
  +                    message = new MimeMessage(null, in);
  +                    in.close();
  +                    message.addHeader("X-fetched-from", fetchTaskName);
  +                    message.saveChanges();
  +                    try {
  +                        server.sendMail(message);
  +                        getLogger().debug("Sent message " + message.toString());
  +                        received.add(messages[i]);
  +                    } catch (MessagingException innerE) {
  +                        getLogger().error("can't insert message " + message.toString() + "created from "+messages[i].identifier);
  +                    }
  +                } catch (MessagingException outerE) {
  +                    getLogger().error("can't create message out of fetched message "+messages[i].identifier);
                   }
  -                server.sendMail(message);
  -                received.add(messages[i]);
               }
               Enumeration enum = received.elements();
               while (enum.hasMoreElements()) {
  @@ -111,28 +110,21 @@
               getLogger().error(e.getMessage());
           } catch (IOException e) {
               getLogger().error(e.getMessage());
  -        } catch (MessagingException e) {
  -            getLogger().error(e.getMessage());
           }
       }
  -
       /**
        * @see org.apache.avalon.framework.component.Composable#compose(ComponentManager)
        */
  -    public void compose( final ComponentManager componentManager )
  -        throws ComponentException {
  +    public void compose(final ComponentManager componentManager) throws ComponentException {
           try {
               server = (MailServer) componentManager.lookup(MailServer.ROLE);
           } catch (ClassCastException cce) {
               StringBuffer errorBuffer =
  -                new StringBuffer(128)
  -                        .append("Component ")
  -                        .append(MailServer.ROLE)
  -                        .append("does not implement the required interface.");
  +                new StringBuffer(128).append("Component ").append(MailServer.ROLE).append(
  +                    "does not implement the required interface.");
               throw new ComponentException(errorBuffer.toString());
           }
       }
  -
       /**
        * @see org.apache.avalon.framework.configuration.Configurable#configure(Configuration)
        */
  @@ -142,7 +134,7 @@
           this.popPass = conf.getChild("password").getValue();
           this.fetchTaskName = conf.getAttribute("name");
           if (getLogger().isDebugEnabled()) {
  -            getLogger().debug("Configured FetchPOP");
  +            getLogger().info("Configured FetchPOP fetch task " + fetchTaskName);
           }
       }
   }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>