Исключение ArgumentNullException в классе PnLManager в методе ProcessMessage()


Исключение ArgumentNullException в классе PnLManager в методе ProcessMessage()
Atom
6/5/2020


Продолжаем парад багов. Устойчиво воспроизводится на QUIK 8.5.

В случае если сообщение о выполненной сделке приходит быстрее, чем об изменении статуса Order, в котором он получает свой биржевой идентификатор, в методе PnLManager.ProcessMessage() генерируется исключение. Проблема в том, что там есть код, который рассчитывает, что к моменту обработки сообщения точно будет известен идентификатор заявки. И это никак не контролируется.

Выпадает на строчке: else if (!execMsg.OrderStringId.IsEmpty()), т.к. у заявки OrderStringId равен null

Кстати, вы, похоже, не в курсе, что для проверки строки на пустое значение существует метод String.IsNullOrEmpty(), который и надо тут использовать. Но основная проблема в том, что код не готов к тому, что сообщение о сделке придет раньше обновления статуса заявки.



Thanks:


Mikhail Sukhov

Avatar
Date: 6/6/2020
Reply


Отличный баг репорт. Фикс залил. Продолжайте в том же духе.
Thanks:

Alexander

Avatar
Date: 6/6/2020
Reply


Спасибо за быструю реакцию.
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy