try { logger.debug("Setting socket timeout to 2sec."); socket.setSoTimeout(2000); } catch (SocketException e) { logger.warn("Error setting socket timeout", e); }
	public void run() {		try {			logger.debug("Setting socket timeout to 2sec.");			socket.setSoTimeout(2000);		} catch (SocketException e) {			logger.warn("Error setting socket timeout", e);		}		try {			logger.debug("Reading message from stream...");			ReceivedMailMessage mailMessage = readIncomingMessage();			logger.debug("Processing message data...");			processMessage(mailMessage);		} catch (IOException e) {			logger.error("Unable to receive message data", e);		} catch (MessagingException e) {			logger.error("Unable to parse MIME message", e);		} catch (Exception e) {			logger.error("Unable to process incoming message", e);		} finally {			try {				socket.close();			} catch (IOException e) {				logger.warn("Unable to close receiver socket", e);			}		}	}