@Override public void closeConnection() { handler.close(); }
public void forceConnectionClose(final String message) { response.byeResponse(message); close(); }
@Override public void run() { // Closed automatically when socket is closed via #close() try (InputStream ins = new BufferedInputStream(socket.getInputStream(), 512); OutputStream outs = new BufferedOutputStream(socket.getOutputStream(), 1024) ) { response = new ImapResponse(outs); // Write welcome message String responseBuffer = VERSION + " Server GreenMail v" + BuildInfo.INSTANCE.getProjectVersion() + " ready"; response.okResponse(null, responseBuffer); session = new ImapSessionImpl(imapHost, userManager, this, socket.getInetAddress().getHostAddress()); while (requestHandler.handleRequest(ins, outs, session)) { // Loop ... } } catch (Exception e) { log.error("Can not handle IMAP connection", e); throw new IllegalStateException("Can not handle IMAP connection", e); } finally { close(); } }