I was doing some certification and when I received a message with 35=BX it failed to parse the FIX message and generated a session level reject. The FIX4NET.FIX.MessageFactoryFIX class has a bug in method Parse that expect all MsgType values to be of a single character. This was the norm in early versions of FIX but it's not true in todays world.
Old Line 351:
if (iTag == Message.TAG_MsgType && sValue != null && sValue.Length == 1)
New Line 351:
if (iTag == Message.TAG_MsgType && sValue != null && sValue.Length > 0)
This will only impact people using messages with MsgType.Length > 1.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I was doing some certification and when I received a message with 35=BX it failed to parse the FIX message and generated a session level reject. The FIX4NET.FIX.MessageFactoryFIX class has a bug in method Parse that expect all MsgType values to be of a single character. This was the norm in early versions of FIX but it's not true in todays world.
Old Line 351:
if (iTag == Message.TAG_MsgType && sValue != null && sValue.Length == 1)
New Line 351:
if (iTag == Message.TAG_MsgType && sValue != null && sValue.Length > 0)
This will only impact people using messages with MsgType.Length > 1.