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]