diff --git a/src/java/davmail/DavGateway.java b/src/java/davmail/DavGateway.java index 3cb68022..ca415bce 100644 --- a/src/java/davmail/DavGateway.java +++ b/src/java/davmail/DavGateway.java @@ -107,7 +107,7 @@ public class DavGateway { HttpClient httpClient = DavGatewayHttpClientFacade.getInstance(); GetMethod getMethod = new GetMethod("http://davmail.sourceforge.net/version.txt"); try { - httpClient.setConnectionTimeout(250); + httpClient.setConnectionTimeout(5000); int status = httpClient.executeMethod(getMethod); if (status == HttpStatus.SC_OK) { versionReader = new BufferedReader(new InputStreamReader(getMethod.getResponseBodyAsStream())); diff --git a/src/java/davmail/tray/SwtGatewayTray.java b/src/java/davmail/tray/SwtGatewayTray.java index 918420a5..5c971834 100644 --- a/src/java/davmail/tray/SwtGatewayTray.java +++ b/src/java/davmail/tray/SwtGatewayTray.java @@ -128,6 +128,8 @@ public class SwtGatewayTray implements DavGatewayTrayInterface { DavGatewayTray.warn("Unable to set look and feel"); } + final Thread mainThread = Thread.currentThread(); + new Thread("SWT") { public void run() { display = new Display(); @@ -254,6 +256,10 @@ public class SwtGatewayTray implements DavGatewayTrayInterface { if (Settings.isFirstStart()) { settingsFrame.setVisible(true); } + // ready + synchronized (mainThread) { + mainThread.notify(); + } while (!shell.isDisposed()) { if (!display.readAndDispatch()) { @@ -271,6 +277,14 @@ public class SwtGatewayTray implements DavGatewayTrayInterface { } } }.start(); + // wait for SWT init + try { + synchronized (mainThread) { + mainThread.wait(); + } + } catch (InterruptedException e) { + DavGatewayTray.error("Error waiting for SWT init",e); + } } }