From 3b6cd4f8bacba7d66a6f8ad8a8e9de7a4706d47a Mon Sep 17 00:00:00 2001 From: mguessan Date: Sun, 15 Nov 2009 13:01:12 +0000 Subject: [PATCH] Check for released version in a separate thread and set timeout to ten seconds git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@832 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- src/java/davmail/DavGateway.java | 22 +++++++++++++------ .../http/DavGatewayHttpClientFacade.java | 1 + 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/java/davmail/DavGateway.java b/src/java/davmail/DavGateway.java index 8544dd31..b1260803 100644 --- a/src/java/davmail/DavGateway.java +++ b/src/java/davmail/DavGateway.java @@ -31,6 +31,7 @@ import davmail.ui.tray.DavGatewayTray; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.log4j.Logger; import java.io.BufferedReader; import java.io.IOException; @@ -41,6 +42,7 @@ import java.util.ArrayList; * DavGateway main class */ public final class DavGateway { + private static final Logger LOGGER = Logger.getLogger(DavGateway.class); private static final String HTTP_DAVMAIL_SOURCEFORGE_NET_VERSION_TXT = "http://davmail.sourceforge.net/version.txt"; private static boolean stopped; @@ -138,18 +140,24 @@ public final class DavGateway { } } - String currentVersion = getCurrentVersion(); + final String currentVersion = getCurrentVersion(); DavGatewayTray.info(new BundleMessage("LOG_DAVMAIL_GATEWAY_LISTENING", currentVersion == null ? "" : currentVersion, messages)); if (!errorMessages.isEmpty()) { DavGatewayTray.error(new BundleMessage("LOG_MESSAGE", errorMessages)); } - // check for new version - String releasedVersion = getReleasedVersion(); - if (currentVersion != null && releasedVersion != null && currentVersion.compareTo(releasedVersion) < 0) { - DavGatewayTray.info(new BundleMessage("LOG_NEW_VERSION_AVAILABLE", releasedVersion)); - } + // check for new version in a separate thread + new Thread("CheckRelease") { + @Override + public void run() { + String releasedVersion = getReleasedVersion(); + if (currentVersion != null && releasedVersion != null && currentVersion.compareTo(releasedVersion) < 0) { + DavGatewayTray.info(new BundleMessage("LOG_NEW_VERSION_AVAILABLE", releasedVersion)); + } + + } + }.start(); } @@ -191,11 +199,11 @@ public final class DavGateway { HttpClient httpClient = DavGatewayHttpClientFacade.getInstance(); GetMethod getMethod = new GetMethod(HTTP_DAVMAIL_SOURCEFORGE_NET_VERSION_TXT); try { - httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(1000); int status = httpClient.executeMethod(getMethod); if (status == HttpStatus.SC_OK) { versionReader = new BufferedReader(new InputStreamReader(getMethod.getResponseBodyAsStream())); version = versionReader.readLine(); + LOGGER.debug("DavMail released version: "+version); } } catch (IOException e) { DavGatewayTray.debug(new BundleMessage("LOG_UNABLE_TO_GET_RELEASED_VERSION")); diff --git a/src/java/davmail/http/DavGatewayHttpClientFacade.java b/src/java/davmail/http/DavGatewayHttpClientFacade.java index d01ccc1a..4e083fa8 100644 --- a/src/java/davmail/http/DavGatewayHttpClientFacade.java +++ b/src/java/davmail/http/DavGatewayHttpClientFacade.java @@ -455,6 +455,7 @@ public final class DavGatewayHttpClientFacade { if (multiThreadedHttpConnectionManager == null) { multiThreadedHttpConnectionManager = new MultiThreadedHttpConnectionManager(); multiThreadedHttpConnectionManager.getParams().setDefaultMaxConnectionsPerHost(100); + multiThreadedHttpConnectionManager.getParams().setConnectionTimeout(10000); httpConnectionManagerThread = new HttpConnectionManagerThread(); httpConnectionManagerThread.start(); }