Продолжаем парад багов. Устойчиво воспроизводится на QUIK 8.5.
В случае если сообщение о выполненной сделке приходит быстрее, чем об изменении статуса Order, в котором он получает свой биржевой идентификатор, в методе PnLManager.ProcessMessage() генерируется исключение. Проблема в том, что там есть код, который рассчитывает, что к моменту обработки сообщения точно будет известен идентификатор заявки. И это никак не контролируется.
Выпадает на строчке: else if (!execMsg.OrderStringId.IsEmpty()), т.к. у заявки OrderStringId равен null
Кстати, вы, похоже, не в курсе, что для проверки строки на пустое значение существует метод String.IsNullOrEmpty(), который и надо тут использовать. Но основная проблема в том, что код не готов к тому, что сообщение о сделке придет раньше обновления статуса заявки.
Kommentare (2)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Отличный баг репорт. Фикс залил. Продолжайте в том же духе.
Спасибо за быструю реакцию.