Uploaded image for project: 'QuickFIX/J'
  1. QuickFIX/J
  2. QFJ-121

Duplicate fields and other problem give false body length validation error

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Default
    • Resolution: Fixed
    • Affects Version/s: 1.0.4
    • Fix Version/s: 1.1.0
    • Component/s: Engine
    • Labels:
      None

      Description

      I have encountered a counterparty whose FIX 4.2 Logon message has "98=0" appearing twice. It's clearly wrong, but I couldn't find anywhere in the spec that prohibits it.

      We choke on these messages pretty early with the not-too-helpful (see QFJ-65) message "Invalid message: Actual body length=x, Expected body length=x".

      The Message.bodyLength() method adds up the lengths of the fields after they've been parsed and grouped as per the DataDictionary, thus the duplicated "98=0" field only gets counted once.

      I have added a crude "ValidateMessageStructure=N" work-around for myself which disables the whole bodyLength() validation step (as well as the innocent checkSum and header field order checks). I will attach this hack as a patch against SVN revision 571.

      A better solution would be to re-think the bodyLength() validation, could it not just examine the raw (unparsed, ungrouped) message at this point, like checkSum() does?

        Attachments

          Activity

            People

            • Assignee:
              admin Steve Bate
              Reporter:
              seh4nc Scott Harrington
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: