fixes the cases when the pop3 email server would not respond for a while

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portal/social-mail-servlet@146891 82a268e6-3cf1-43bd-a215-b396298e98cf
Feature/21689
Massimiliano Assante 7 years ago
parent 32376bcdb8
commit 41dee760bd

@ -11,7 +11,7 @@
<groupId>org.gcube.portal</groupId>
<artifactId>social-mail-servlet</artifactId>
<packaging>war</packaging>
<version>2.1.1-SNAPSHOT</version>
<version>2.2.0-SNAPSHOT</version>
<name>social-mail-servlet Webapp</name>
<description>This component read periodically email replies from user wanting to reply to a post via email</description>

@ -83,38 +83,7 @@ public class PortalSchedulerService extends HttpServlet {
_log.warn("Could not read popAccount data portal name", e);
}
_log.info("EmailParser stared for " + portalName + ", pollingInterval (in minutes)=" + pollingInterval);
boolean keepPolling = true;
while (keepPolling) {
try {
int newPolling = getPollingInterval();
if (newPolling <= 0) {
pop3Scheduler.shutdown();
_log.info("EmailParser stopped for " + popAccount.getPortalName() + ", found value less than 1 in gcube-data.properties file under $CATALINA_HOME/conf");
keepPolling = false;
}
else if (newPolling != pollingInterval) {
pollingInterval = newPolling;
pop3Scheduler.shutdown();
_log.debug("Current thread EmailParser stopped, starting new one with different polling rate ... ->" + pollingInterval);
pop3Scheduler = Executors.newScheduledThreadPool(1);
pop3Scheduler.scheduleAtFixedRate(new PeriodicTask(store, popAccount, request), 0, pollingInterval, TimeUnit.MINUTES);
_log.debug("EmailParser restarts in " + pollingInterval + " minutes, to change this polling delay edit gcube-data.properties file under $CATALINA_HOME/conf");
}
Thread.sleep(pollingInterval * 1000 * 60);
} catch (Exception e) {
e.printStackTrace();
}
}
toReturn = "<DIV>Check Notification Email Started ... </DIV>";
// Thread likesThread = new Thread(new PeriodicTask(store, popAccount, request));
// likesThread.start();
response.setContentType("text/html");
response.getWriter().write(toReturn);
}

@ -74,7 +74,7 @@ import com.sun.mail.util.MailSSLSocketFactory;
public class PeriodicTask implements Runnable {
private static final Log _log = LogFactoryUtil.getLog(PeriodicTask.class);
private static final String APP_ID_NEWSFEED = "org.gcube.portlets.user.newsfeed.server.NewsServiceImpl";
private DatabookStore socialStore;
private EmailPopAccount popAccount;
private SocialNetworkingSite site;
@ -93,11 +93,16 @@ public class PeriodicTask implements Runnable {
@Override
public void run() {
_log.debug("PeriodicTask starting for portal/site having name: " + popAccount.getPortalName());
check(popAccount.getPortalName(), popAccount.getPop3Server(), popAccount.getPop3user(), popAccount.getPop3password());
try {
_log.debug("PeriodicTask starting for portal/site having name: " + popAccount.getPortalName());
check(popAccount.getPortalName(), popAccount.getPop3Server(), popAccount.getPop3user(), popAccount.getPop3password());
} catch (Exception e) {
_log.error("Exception during check email account, exiting ans stopping thread... ");
Thread.currentThread().interrupt();
}
}
/**
* @return a fake session usuful for Notifications
*/

Loading…
Cancel
Save