FIX dictionary:
1000, 6000 - defined in fields section 2000, 7000 - not defined anywhere +---------------------------+------------------------+-------+------------+----------------------------------------------------------------------+ | AllowUnknownMessageFields | CheckUserDefinedFields | Field | Validation | Exception | +---------------------------+------------------------+-------+------------+----------------------------------------------------------------------+ 1) GOOD. Field 1000 is NOT a user field so it should SUCCEED when AllowUnknownMessageFields == true +---------------------------+------------------------+-------+------------+----------------------------------------------------------------------+ | false | false | 1000 | FAILURE | quickfix.DataDictionary.checkIsInMessage(DataDictionary.java:779) | | false | true | 1000 | FAILURE | quickfix.DataDictionary.checkIsInMessage(DataDictionary.java:779) | | true | false | 1000 | SUCCESS | | | true | true | 1000 | SUCCESS | | +---------------------------+------------------------+-------+------------+----------------------------------------------------------------------+ 2) BAD. Field 6000 is a user field so it should FAIL when CheckUserDefinedFields === true +---------------------------+------------------------+-------+------------+----------------------------------------------------------------------+ | false | false | 6000 | SUCCESS | | | false | true | 6000 | FAILURE | quickfix.DataDictionary.checkIsInMessage(DataDictionary.java:779) | | true | false | 6000 | SUCCESS | | | true | true | 6000 | SUCCESS | | (FIXME) +---------------------------+------------------------+-------+------------+----------------------------------------------------------------------+ 3) BAD. Field 2000 is NOT a user field so it should SUCCEED when AllowUnknownMessageFields == true (even though it's not inside tag) +---------------------------+------------------------+-------+------------+----------------------------------------------------------------------+ | false | false | 2000 | FAILURE | quickfix.DataDictionary.checkValidTagNumber(DataDictionary.java:691) | | false | true | 2000 | FAILURE | quickfix.DataDictionary.checkValidTagNumber(DataDictionary.java:691) | | true | false | 2000 | FAILURE | quickfix.DataDictionary.checkValidTagNumber(DataDictionary.java:691) | (FIXME) | true | true | 2000 | FAILURE | quickfix.DataDictionary.checkValidTagNumber(DataDictionary.java:691) | (FIXME) +---------------------------+------------------------+-------+------------+----------------------------------------------------------------------+ 4) GOOD. Field 7000 is a user field so it should SUCCEED when CheckUserDefinedFields == false +---------------------------+------------------------+-------+------------+----------------------------------------------------------------------+ | false | false | 7000 | SUCCESS | | | false | true | 7000 | FAILURE | quickfix.DataDictionary.checkValidTagNumber(DataDictionary.java:691) | | true | false | 7000 | SUCCESS | | | true | true | 7000 | FAILURE | quickfix.DataDictionary.checkValidTagNumber(DataDictionary.java:691) | +---------------------------+------------------------+-------+------------+----------------------------------------------------------------------+