diff --git a/src/java/davmail/AbstractServer.java b/src/java/davmail/AbstractServer.java index 7bf06a8d..b8c66233 100644 --- a/src/java/davmail/AbstractServer.java +++ b/src/java/davmail/AbstractServer.java @@ -15,18 +15,14 @@ public abstract class AbstractServer extends Thread { * Create a ServerSocket to listen for connections. * Start the thread. */ - public AbstractServer(int port, int defaultPort) { + public AbstractServer(int port, int defaultPort) throws IOException { if (port == 0) { this.port = defaultPort; } else { this.port = port; } - try { - //noinspection SocketOpenedButNotSafelyClosed - serverSocket = new ServerSocket(port); - } catch (IOException e) { - DavGatewayTray.error("Exception creating server socket", e); - } + //noinspection SocketOpenedButNotSafelyClosed + serverSocket = new ServerSocket(port); } @@ -74,7 +70,9 @@ public abstract class AbstractServer extends Thread { public void close() { try { - serverSocket.close(); + if (serverSocket != null) { + serverSocket.close(); + } } catch (IOException e) { DavGatewayTray.warn("Exception closing server socket", e); } diff --git a/src/java/davmail/DavGateway.java b/src/java/davmail/DavGateway.java index 383f306c..3aa1257f 100644 --- a/src/java/davmail/DavGateway.java +++ b/src/java/davmail/DavGateway.java @@ -3,6 +3,8 @@ package davmail; import davmail.pop.PopServer; import davmail.smtp.SmtpServer; +import java.io.IOException; + /** * DavGateway main class */ @@ -56,13 +58,18 @@ public class DavGateway { if (popPort == 0) { popPort = PopServer.DEFAULT_PORT; } - smtpServer = new SmtpServer(smtpPort); - popServer = new PopServer(popPort); - smtpServer.start(); - popServer.start(); - DavGatewayTray.info("DavMail gateway listening on SMTP port " + smtpPort + - " and POP port " + popPort); + try { + smtpServer = new SmtpServer(smtpPort); + popServer = new PopServer(popPort); + smtpServer.start(); + popServer.start(); + + DavGatewayTray.info("DavMail gateway listening on SMTP port " + smtpPort + + " and POP port " + popPort); + } catch (IOException e) { + DavGatewayTray.error("Exception creating server socket", e); + } } diff --git a/src/java/davmail/imap/ImapServer.java b/src/java/davmail/imap/ImapServer.java index ed0be803..6e1004ac 100644 --- a/src/java/davmail/imap/ImapServer.java +++ b/src/java/davmail/imap/ImapServer.java @@ -2,6 +2,7 @@ package davmail.imap; import java.net.Socket; +import java.io.IOException; import davmail.AbstractServer; import davmail.AbstractConnection; @@ -16,7 +17,7 @@ public class ImapServer extends AbstractServer { * Create a ServerSocket to listen for connections. * Start the thread. */ - public ImapServer(int port) { + public ImapServer(int port) throws IOException { super(port, ImapServer.DEFAULT_PORT); } diff --git a/src/java/davmail/pop/PopServer.java b/src/java/davmail/pop/PopServer.java index e5813a51..1c1329e0 100644 --- a/src/java/davmail/pop/PopServer.java +++ b/src/java/davmail/pop/PopServer.java @@ -5,6 +5,7 @@ import davmail.AbstractServer; import davmail.AbstractConnection; import java.net.Socket; +import java.io.IOException; /** * Pop3 server @@ -17,7 +18,7 @@ public class PopServer extends AbstractServer { * Start the thread. * @param port pop listen port, 110 if not defined (0) */ - public PopServer(int port) { + public PopServer(int port) throws IOException { super(port, PopServer.DEFAULT_PORT); } diff --git a/src/java/davmail/smtp/SmtpServer.java b/src/java/davmail/smtp/SmtpServer.java index a8664af9..ff569639 100644 --- a/src/java/davmail/smtp/SmtpServer.java +++ b/src/java/davmail/smtp/SmtpServer.java @@ -4,6 +4,7 @@ import davmail.AbstractServer; import davmail.AbstractConnection; import java.net.Socket; +import java.io.IOException; public class SmtpServer extends AbstractServer { public static final int DEFAULT_PORT = 25; @@ -12,7 +13,7 @@ public class SmtpServer extends AbstractServer { * Create a ServerSocket to listen for connections. * Start the thread. */ - public SmtpServer(int port) { + public SmtpServer(int port) throws IOException { super(port, SmtpServer.DEFAULT_PORT); }