quickfixj icon indicating copy to clipboard operation
quickfixj copied to clipboard

Enabling a previously disabled session might lead to message loss

Open chrjohn opened this issue 6 months ago • 0 comments

Describe the bug When a session is disabled (i.e. after calling logout()) it will no longer get reset as defined by its SessionSchedule. This is because next() returns early when a session is disabled:

https://github.com/quickfix-j/quickfixj/blob/f8ba074829c5e362e5caf1820804be878d02b63d/quickfixj-core/src/main/java/quickfix/Session.java#L1952-L1963

To Reproduce

Will try to create a unit test in due course.

Manual steps:

  • have a session that is disabled and has not been used at the current day (i.e. there was no established session for that day)
  • send messages to that Session via sendToTarget() - the messages will end up in the Session's message store.
  • establish a connection to the session
  • based on QFJ's internal timer, the next() method will be called within a second and a reset will be done, effectively removing the Sessions's message store

Expected behavior

Session should get reset based on its schedule even when it is disabled.

chrjohn avatar May 12 '25 10:05 chrjohn