From: Ilya K. <kur...@gm...> - 2019-03-21 08:50:46
|
Hello! I ran into some interesting behavior with quickfixj 2 today. My question is if it's intentionally designed this way? And, if yes, if someone could explain the reasoning behind it? The behavior I see is that all the session validation settings: - Session.SETTING_VALIDATE_FIELDS_HAVE_VALUES ("ValidateFieldsHaveValues") - Session.SETTING_VALIDATE_FIELDS_OUT_OF_ORDER ("ValidateFieldsOutOfOrder") - Session.SETTING_VALIDATE_UNORDERED_GROUP_FIELDS ("ValidateUnorderedGroupFields") - Session.SETTING_VALIDATE_USER_DEFINED_FIELDS ("ValidateUserDefinedFields") - Session.SETTING_ALLOW_UNKNOWN_MSG_FIELDS ("AllowUnknownMsgFields") have exactly no effect on the validation of FIXT application messages unless one also explicitly sets "AppDataDictionary" option (Session.SETTING_APP_DATA_DICTIONARY). I observe this behavior in tests, but the code in DefaultSessionFactory#processFixtDataDictionaries looks rather unambiguous too ( https://github.com/quickfix-j/quickfixj/blob/QFJ_RELEASE_2_1_1/quickfixj-core/src/main/java/quickfix/DefaultSessionFactory.java#L283). It looks like DefaultSessionFactory#createDataDictionary (the only place using those Validate* and AllowUnknownMsgFields settings) is called to create app dictionary IIF AppDataDictionary is present. Is this behavior intentional? |
From: Christoph J. <chr...@ma...> - 2019-07-08 11:24:36
|
Hi, I did not check the code but how should QFJ validate if fields are out of order if no application data dictionary is specified? Or did I misunderstand your question? Cheers, Chris. On 21/03/2019 09:50, Ilya Kurnosov wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > Hello! I ran into some interesting behavior with quickfixj 2 today. My question is if it's > intentionally designed this way? And, if yes, if someone could explain the reasoning behind it? > > The behavior I see is that all the session validation settings: > > * Session.SETTING_VALIDATE_FIELDS_HAVE_VALUES ("ValidateFieldsHaveValues") > * Session.SETTING_VALIDATE_FIELDS_OUT_OF_ORDER ("ValidateFieldsOutOfOrder") > * Session.SETTING_VALIDATE_UNORDERED_GROUP_FIELDS ("ValidateUnorderedGroupFields") > * Session.SETTING_VALIDATE_USER_DEFINED_FIELDS ("ValidateUserDefinedFields") > * Session.SETTING_ALLOW_UNKNOWN_MSG_FIELDS ("AllowUnknownMsgFields") > > have exactly no effect on the validation of FIXT application messages unless one also explicitly > sets "AppDataDictionary" option (Session.SETTING_APP_DATA_DICTIONARY). > I observe this behavior in tests, but the code in > DefaultSessionFactory#processFixtDataDictionaries looks rather unambiguous too > (https://github.com/quickfix-j/quickfixj/blob/QFJ_RELEASE_2_1_1/quickfixj-core/src/main/java/quickfix/DefaultSessionFactory.java#L283). > It looks like DefaultSessionFactory#createDataDictionary (the only place using those Validate* and > AllowUnknownMsgFields settings) is called to create app dictionary IIF AppDataDictionary is present. > > Is this behavior intentional? > > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users -- Christoph John Software Engineering T +49 241 557080-28 chr...@ma... MACD GmbH Oppenhoffallee 103 52066 Aachen, Germany www.macd.com Amtsgericht Aachen: HRB 8151 Ust.-Id: DE 813021663 Geschäftsführer: George Macdonald |
From: Ilya K. <kur...@gm...> - 2019-07-08 16:08:35
|
Hi, there's a nuance, yes: if AppDataDictionary is not provided explicitly then "an attempt will be made to load a dictionary using the DefaultApplVerID for the session". The latter logic works fine resulting in proper dictionary being used, alas sessions validation settings, if any, get ignored. On Mon, Jul 8, 2019 at 2:05 PM Christoph John <chr...@ma...> wrote: > Hi, > > I did not check the code but how should QFJ validate if fields are out of > order if no application data dictionary is specified? > Or did I misunderstand your question? > > Cheers, > Chris. > > On 21/03/2019 09:50, Ilya Kurnosov wrote: > > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > Hello! I ran into some interesting behavior with quickfixj 2 today. My > question is if it's intentionally designed this way? And, if yes, if > someone could explain the reasoning behind it? > > The behavior I see is that all the session validation settings: > > - Session.SETTING_VALIDATE_FIELDS_HAVE_VALUES > ("ValidateFieldsHaveValues") > - Session.SETTING_VALIDATE_FIELDS_OUT_OF_ORDER > ("ValidateFieldsOutOfOrder") > - Session.SETTING_VALIDATE_UNORDERED_GROUP_FIELDS > ("ValidateUnorderedGroupFields") > - Session.SETTING_VALIDATE_USER_DEFINED_FIELDS > ("ValidateUserDefinedFields") > - Session.SETTING_ALLOW_UNKNOWN_MSG_FIELDS ("AllowUnknownMsgFields") > > have exactly no effect on the validation of FIXT application messages > unless one also explicitly sets "AppDataDictionary" option > (Session.SETTING_APP_DATA_DICTIONARY). > I observe this behavior in tests, but the code in > DefaultSessionFactory#processFixtDataDictionaries looks rather unambiguous > too ( > https://github.com/quickfix-j/quickfixj/blob/QFJ_RELEASE_2_1_1/quickfixj-core/src/main/java/quickfix/DefaultSessionFactory.java#L283). > It looks like DefaultSessionFactory#createDataDictionary (the only place > using those Validate* and AllowUnknownMsgFields settings) is called to > create app dictionary IIF AppDataDictionary is present. > > Is this behavior intentional? > > > _______________________________________________ > Quickfixj-users mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > > -- > Christoph John > Software Engineering > T +49 241 557...@ma... > > MACD GmbH > Oppenhoffallee 103 > 52066 Aachen, Germanywww.macd.com > > Amtsgericht Aachen: HRB 8151 > Ust.-Id: DE 813021663 > Geschäftsführer: George Macdonald > > |
From: Christoph J. <chr...@ma...> - 2019-07-16 08:27:31
|
Hi, I think I have found the problem in the code. When QFJ loads an app dictionary by default (i.e. when it does not find it in the cache), the validation settings do not get applied. But need to create a test case to be sure. Cheers, Chris. On 08/07/2019 18:08, Ilya Kurnosov wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > Hi, there's a nuance, yes: if AppDataDictionary is not provided explicitly then "an attempt will > be made to load a dictionary using the DefaultApplVerID for the session". The latter logic works > fine resulting in proper dictionary being used, alas sessions validation settings, if any, get > ignored. > > On Mon, Jul 8, 2019 at 2:05 PM Christoph John <chr...@ma... > <mailto:chr...@ma...>> wrote: > > Hi, > > I did not check the code but how should QFJ validate if fields are out of order if no > application data dictionary is specified? > Or did I misunderstand your question? > > Cheers, > Chris. > > On 21/03/2019 09:50, Ilya Kurnosov wrote: >> QuickFIX/J Documentation:http://www.quickfixj.org/documentation/ >> QuickFIX/J Support:http://www.quickfixj.org/support/ >> >> >> >> Hello! I ran into some interesting behavior with quickfixj 2 today. My question is if it's >> intentionally designed this way? And, if yes, if someone could explain the reasoning behind it? >> >> The behavior I see is that all the session validation settings: >> >> * Session.SETTING_VALIDATE_FIELDS_HAVE_VALUES ("ValidateFieldsHaveValues") >> * Session.SETTING_VALIDATE_FIELDS_OUT_OF_ORDER ("ValidateFieldsOutOfOrder") >> * Session.SETTING_VALIDATE_UNORDERED_GROUP_FIELDS ("ValidateUnorderedGroupFields") >> * Session.SETTING_VALIDATE_USER_DEFINED_FIELDS ("ValidateUserDefinedFields") >> * Session.SETTING_ALLOW_UNKNOWN_MSG_FIELDS ("AllowUnknownMsgFields") >> >> have exactly no effect on the validation of FIXT application messages unless one also >> explicitly sets "AppDataDictionary" option (Session.SETTING_APP_DATA_DICTIONARY). >> I observe this behavior in tests, but the code in >> DefaultSessionFactory#processFixtDataDictionaries looks rather unambiguous too >> (https://github.com/quickfix-j/quickfixj/blob/QFJ_RELEASE_2_1_1/quickfixj-core/src/main/java/quickfix/DefaultSessionFactory.java#L283). >> It looks like DefaultSessionFactory#createDataDictionary (the only place using those >> Validate* and AllowUnknownMsgFields settings) is called to create app dictionary IIF >> AppDataDictionary is present. >> >> Is this behavior intentional? >> >> >> _______________________________________________ >> Quickfixj-users mailing list >> Qui...@li... <mailto:Qui...@li...> >> https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > -- > Christoph John > Software Engineering > T +49 241 557080-28 > chr...@ma... <mailto:chr...@ma...> > > MACD GmbH > Oppenhoffallee 103 > 52066 Aachen, Germany > www.macd.com <http://www.macd.com> > > Amtsgericht Aachen: HRB 8151 > Ust.-Id: DE 813021663 > Geschäftsführer: George Macdonald > > > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users -- Christoph John Software Engineering T +49 241 557080-28 chr...@ma... MACD GmbH Oppenhoffallee 103 52066 Aachen, Germany www.macd.com Amtsgericht Aachen: HRB 8151 Ust.-Id: DE 813021663 Geschäftsführer: George Macdonald |
From: Christoph J. <chr...@ma...> - 2019-07-19 15:13:29
|
I have created a JIRA issue for this and will fix it. https://www.quickfixj.org/jira/browse/QFJ-981 Cheers, Chris. On 16.07.19 10:27, Christoph John via Quickfixj-users wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > Hi, > > I think I have found the problem in the code. When QFJ loads an app dictionary by default (i.e. > when it does not find it in the cache), the validation settings do not get applied. But need to > create a test case to be sure. > > Cheers, > Chris. > > > On 08/07/2019 18:08, Ilya Kurnosov wrote: >> QuickFIX/J Documentation:http://www.quickfixj.org/documentation/ >> QuickFIX/J Support:http://www.quickfixj.org/support/ >> >> >> >> Hi, there's a nuance, yes: if AppDataDictionary is not provided explicitly then "an attempt will >> be made to load a dictionary using the DefaultApplVerID for the session". The latter logic works >> fine resulting in proper dictionary being used, alas sessions validation settings, if any, get >> ignored. >> >> On Mon, Jul 8, 2019 at 2:05 PM Christoph John <chr...@ma... >> <mailto:chr...@ma...>> wrote: >> >> Hi, >> >> I did not check the code but how should QFJ validate if fields are out of order if no >> application data dictionary is specified? >> Or did I misunderstand your question? >> >> Cheers, >> Chris. >> >> On 21/03/2019 09:50, Ilya Kurnosov wrote: >>> QuickFIX/J Documentation:http://www.quickfixj.org/documentation/ >>> QuickFIX/J Support:http://www.quickfixj.org/support/ >>> >>> >>> >>> Hello! I ran into some interesting behavior with quickfixj 2 today. My question is if it's >>> intentionally designed this way? And, if yes, if someone could explain the reasoning behind it? >>> >>> The behavior I see is that all the session validation settings: >>> >>> * Session.SETTING_VALIDATE_FIELDS_HAVE_VALUES ("ValidateFieldsHaveValues") >>> * Session.SETTING_VALIDATE_FIELDS_OUT_OF_ORDER ("ValidateFieldsOutOfOrder") >>> * Session.SETTING_VALIDATE_UNORDERED_GROUP_FIELDS ("ValidateUnorderedGroupFields") >>> * Session.SETTING_VALIDATE_USER_DEFINED_FIELDS ("ValidateUserDefinedFields") >>> * Session.SETTING_ALLOW_UNKNOWN_MSG_FIELDS ("AllowUnknownMsgFields") >>> >>> have exactly no effect on the validation of FIXT application messages unless one also >>> explicitly sets "AppDataDictionary" option (Session.SETTING_APP_DATA_DICTIONARY). >>> I observe this behavior in tests, but the code in >>> DefaultSessionFactory#processFixtDataDictionaries looks rather unambiguous too >>> (https://github.com/quickfix-j/quickfixj/blob/QFJ_RELEASE_2_1_1/quickfixj-core/src/main/java/quickfix/DefaultSessionFactory.java#L283). >>> It looks like DefaultSessionFactory#createDataDictionary (the only place using those >>> Validate* and AllowUnknownMsgFields settings) is called to create app dictionary IIF >>> AppDataDictionary is present. >>> >>> Is this behavior intentional? >>> -- Christoph John Software Engineering T +49 241 557080-28 chr...@ma... MACD GmbH Oppenhoffallee 103 52066 Aachen, Germany www.macd.com Amtsgericht Aachen: HRB 8151 Ust.-Id: DE 813021663 Geschäftsführer: George Macdonald |