@Override public void messageReceived(IoSession ioSession, Object message) throws Exception { String messageString = (String) message; SessionID remoteSessionID = MessageUtils.getReverseSessionID(messageString); Session quickFixSession = findQFSession(ioSession, remoteSessionID); if (quickFixSession != null) { quickFixSession.getLog().onIncoming(messageString); try { Message fixMessage = parse(quickFixSession, messageString); processMessage(ioSession, fixMessage); } catch (InvalidMessage e) { if (MsgType.LOGON.equals(MessageUtils.getMessageType(messageString))) { log.error("Invalid LOGON message, disconnecting: " + e.getMessage()); ioSession.closeNow(); } else { log.error("Invalid message: " + e.getMessage()); } } } else { log.error("Disconnecting; received message for unknown session: " + messageString); ioSession.closeNow(); } }