← Atrás

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

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

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

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

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

¿Le resultó útil este tema?

Compartir tema

Comentarios (2)

Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario

Mikhail Sukhov
Mikhail Sukhov

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

Alexander
Alexander Autor

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