serge       01/10/20 05:56:48

  Modified:    src/java/org/apache/james/transport/mailets
                        RemoteDelivery.java
  Log:
  Added timeout setting to outgoing mail delivery sockets.  Reported by Stephan 
Schiessling <[EMAIL PROTECTED]>.  Also added some logging to initializing parameter problems 
and moved other javax.mail.Session code around to keep centralized.
  
  Revision  Changes    Path
  1.10      +24 -7     
jakarta-james/src/java/org/apache/james/transport/mailets/RemoteDelivery.java
  
  Index: RemoteDelivery.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-james/src/java/org/apache/james/transport/mailets/RemoteDelivery.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- RemoteDelivery.java       2001/10/08 22:25:42     1.9
  +++ RemoteDelivery.java       2001/10/20 12:56:48     1.10
  @@ -44,14 +44,15 @@
    * @author Serge Knystautas <[EMAIL PROTECTED]>
    * @author Federico Barbieri <[EMAIL PROTECTED]>
    *
  - * This is $Revision: 1.9 $
  - * Committed on $Date: 2001/10/08 22:25:42 $ by: $Author: serge $
  + * This is $Revision: 1.10 $
  + * Committed on $Date: 2001/10/20 12:56:48 $ by: $Author: serge $
    */
   public class RemoteDelivery extends GenericMailet implements Runnable {
   
       private SpoolRepository outgoing;
       private long delayTime = 21600000; // default is 6*60*60*1000 millis (6 hours)
       private int maxRetries = 5; // default number of retries
  +    private long smtpTimeout = 600000;  //default number of ms to timeout on smtp 
delivery
       private int deliveryThreadCount = 1; // default number of delivery threads
       private String gatewayServer = null; // the server to send all email to
       private Collection deliveryThreads = new Vector();
  @@ -59,12 +60,25 @@
   
       public void init() throws MessagingException {
           try {
  -            delayTime = Long.parseLong(getInitParameter("delayTime"));
  +            if (getInitParameter("delayTime") != null) {
  +                delayTime = Long.parseLong(getInitParameter("delayTime"));
  +            }
  +        } catch (Exception e) {
  +            log("Invalid delayTime setting: " + getInitParameter("delayTime"));
  +        }
  +        try {
  +            if (getInitParameter("maxRetries") != null) {
  +                maxRetries = Integer.parseInt(getInitParameter("maxRetries"));
  +            }
           } catch (Exception e) {
  +            log("Invalid maxRetries setting: " + getInitParameter("maxRetries"));
           }
           try {
  -            maxRetries = Integer.parseInt(getInitParameter("maxRetries"));
  +            if (getInitParameter("timeout") != null) {
  +                smtpTimeout = Integer.parseInt(getInitParameter("timeout"));
  +            }
           } catch (Exception e) {
  +            log("Invalid timeout setting: " + getInitParameter("timeout"));
           }
           gatewayServer = getInitParameter("gateway");
           ComponentManager compMgr = 
(ComponentManager)getMailetContext().getAttribute(Constants.AVALON_COMPONENT_MANAGER);
  @@ -162,9 +176,6 @@
                               props.put("mail.smtp.user", 
mail.getSender().toString());
                               props.put("mail.smtp.from", 
mail.getSender().toString());
                           }
  -                        props.put("mail.debug", "false");
  -                        //Prevents problems encountered with 250 OK Messages
  -                        props.put("mail.smtp.ehlo", "false");
   
                           //Many of these properties are only in later JavaMail 
versions
                           //"mail.smtp.ehlo"  //default true
  @@ -361,6 +372,12 @@
       public void run() {
           //Checks the pool and delivers a mail message
           Properties props = new Properties();
  +        //Not needed for production environment
  +        props.put("mail.debug", "false");
  +        //Prevents problems encountered with 250 OK Messages
  +        props.put("mail.smtp.ehlo", "false");
  +        //Sets timeout on going connections
  +        props.put("mail.smtp.timeout", smtpTimeout + "");
           Session session = Session.getInstance(props, null);
           while (!Thread.currentThread().interrupted()) {
               try {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to