|
Author: jacopoc
Date: Thu Jul 12 14:16:43 2012 New Revision: 1360691 URL: http://svn.apache.org/viewvc?rev=1360691&view=rev Log: Replaced usage of java.util.Timer with the more modern and reliable ScheduledThreadPool executor. Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/mail/JavaMailContainer.java Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/mail/JavaMailContainer.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/mail/JavaMailContainer.java?rev=1360691&r1=1360690&r2=1360691&view=diff ============================================================================== --- ofbiz/trunk/framework/service/src/org/ofbiz/service/mail/JavaMailContainer.java (original) +++ ofbiz/trunk/framework/service/src/org/ofbiz/service/mail/JavaMailContainer.java Thu Jul 12 14:16:43 2012 @@ -22,8 +22,9 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Properties; -import java.util.Timer; -import java.util.TimerTask; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; import javax.mail.FetchProfile; import javax.mail.Flags; import javax.mail.Folder; @@ -62,7 +63,7 @@ public class JavaMailContainer implement protected GenericValue userLogin = null; protected long timerDelay = 300000; protected long maxSize = 1000000; - protected Timer pollTimer = null; + protected ScheduledExecutorService pollTimer = null; protected boolean deleteMail = false; // whether to delete emails after fetching them. protected String configFile = null; @@ -80,7 +81,7 @@ public class JavaMailContainer implement this.name = name; this.configFile = configFile; this.stores = new LinkedHashMap<Store, Session>(); - this.pollTimer = new Timer(); + this.pollTimer = Executors.newScheduledThreadPool(1); } /** @@ -126,7 +127,7 @@ public class JavaMailContainer implement // start the polling timer if (UtilValidate.isNotEmpty(stores)) { - pollTimer.schedule(new PollerTask(dispatcher, userLogin), timerDelay, timerDelay); + pollTimer.scheduleAtFixedRate(new PollerTask(dispatcher, userLogin), timerDelay, timerDelay, TimeUnit.MILLISECONDS); } else { Debug.logWarning("No JavaMail Store(s) configured; poller disabled.", module); } @@ -142,7 +143,7 @@ public class JavaMailContainer implement */ public void stop() throws ContainerException { // stop the poller - this.pollTimer.cancel(); + this.pollTimer.shutdown(); Debug.logWarning("stop JavaMail poller", module); } @@ -250,7 +251,7 @@ public class JavaMailContainer implement } } - class PollerTask extends TimerTask { + class PollerTask implements Runnable { LocalDispatcher dispatcher; GenericValue userLogin; @@ -260,7 +261,6 @@ public class JavaMailContainer implement this.userLogin = userLogin; } - @Override public void run() { if (UtilValidate.isNotEmpty(stores)) { for (Map.Entry<Store, Session> entry: stores.entrySet()) { |
| Free forum by Nabble | Edit this page |
