LogUtil.logThrowable(quickfixSession.getLog(), "error during disconnect", e);
LogUtil.logThrowable(quickfixSession.getLog(), "error during message parsing", e);
    protected void processMessage(Message message) {        FIXMessageData fixMessageData = (FIXMessageData) message;        quickfix.Session quickfixSession = fixMessageData.getSession();        try {            quickfixSession.getState().logIncoming(fixMessageData.toString());            DataDictionary dataDictionary = quickfixSession.getDataDictionary();            quickfix.Message fixMessage = fixMessageData.parse(dataDictionary);            try {                quickfixSession.next(fixMessage);            } catch (Throwable e) {                quickfix.Log sessionLog = quickfixSession.getLog();                LogUtil.logThrowable(sessionLog, "error while receiving message", e);                if (fixMessageData.isLogon()) {                    try {                        quickfixSession.disconnect();                    } catch (IOException ioException) {                        LogUtil.logThrowable(sessionLog, "error during disconnect", ioException);                    }                }            }        } catch (InvalidMessage e) {            // TODO Handle Invalid Message During Parsing            // Generate a session-level reject for the message            // The problem here is that the fixMessage was not parsed.            //quickfixSession.generateReject(fixMessage, "invalid message            // format");            LogUtil.logThrowable(quickfixSession.getLog(), "error during disconnect", e);        }    }