From a1e1f0791b7104387c2dce57fb5555f1a5d6b60e Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Sat, 21 Feb 2015 07:50:07 +0000 Subject: [PATCH] Merged HEAD-BUG-FIX (5.1/Cloud) to HEAD (5.1/Cloud) 97677: Merged 5.0.N (5.0.2) to HEAD-BUG-FIX (5.1/Cloud) 97594: Merged DEV to 5.0.N (5.0.2) 97048: MNT-13339: No exception is present in log files when Alfresco IMAP Service port is blocked - extended ImapServer class and overridden openServerSocket method to add exceptions logging git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@97698 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/imap/AlfrescoImapServer.java | 50 ++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/source/java/org/alfresco/repo/imap/AlfrescoImapServer.java b/source/java/org/alfresco/repo/imap/AlfrescoImapServer.java index fe20c775ab..bb6a294ac0 100644 --- a/source/java/org/alfresco/repo/imap/AlfrescoImapServer.java +++ b/source/java/org/alfresco/repo/imap/AlfrescoImapServer.java @@ -30,7 +30,9 @@ import com.icegreen.greenmail.Managers; import com.icegreen.greenmail.imap.ImapHostManager; import com.icegreen.greenmail.imap.ImapServer; import com.icegreen.greenmail.user.UserManager; +import com.icegreen.greenmail.util.DummySSLServerSocketFactory; import com.icegreen.greenmail.util.ServerSetup; + import javax.net.ssl.SSLServerSocketFactory; import javax.net.ssl.SSLServerSocket; @@ -91,6 +93,52 @@ public class AlfrescoImapServer extends AbstractLifecycleBean return ret; } } + + private class DefaultImapServer extends ImapServer + { + + public DefaultImapServer(ServerSetup setup, Managers managers) + { + super(setup, managers); + } + + // same behavior as in overridden method, just added exception logging + protected synchronized ServerSocket openServerSocket() throws IOException { + ServerSocket ret; + if (setup.isSecure()) + { + try + { + ret = (SSLServerSocket) DummySSLServerSocketFactory.getDefault().createServerSocket( + setup.getPort(), 0, bindTo); + } + catch (IOException e) + { + if(logger.isErrorEnabled()) + { + logger.error("Unable to open socket bindTo:" + bindTo + " port " + setup.getPort(), e); + } + throw e; + } + } + else + { + try + { + ret = new ServerSocket(setup.getPort(), 0, bindTo); + } + catch (IOException e) + { + if(logger.isErrorEnabled()) + { + logger.error("Unable to open socket bindTo:" + bindTo + " port " + setup.getPort(), e); + } + throw e; + } + } + return ret; + } + } private static Log logger = LogFactory.getLog(AlfrescoImapServer.class); @@ -201,7 +249,7 @@ public class AlfrescoImapServer extends AbstractLifecycleBean if(isImapEnabled()) { - serverImpl = new ImapServer(new ServerSetup(port, host, ServerSetup.PROTOCOL_IMAP), imapManagers); + serverImpl = new DefaultImapServer(new ServerSetup(port, host, ServerSetup.PROTOCOL_IMAP), imapManagers); serverImpl.startService(null); if (logger.isInfoEnabled())