|
From: Andrew M. <an...@nm...> - 2019-02-20 22:06:58
|
Thanks for noticing the dictionaries.
I just looked in the source (should have done that first) and the validate
boolean passed to message.fromString(...) is just for validating the
checksum. DataDictionary.validate(message) does the real validation.
On Wed, 20 Feb 2019, philip wrote:
> 1. Your dictionaries are the wrong way round. This is your first problem.
>
> FIXT1.1 is a Transport layer / aka Session Data Dictionary
> FIX50SP2 is an Application Data Dictionary
>
> 2. Much of the time the validation just sets the exception field on the
> message. This is kind of a hangover from QuickFixC++ and IMO terrible design.
>
> It's worth doing:
>
> if (message.getException() != null) {
> throw message.getException();
> }
>
> - Philip
>
> On 2019-02-20 19:33, Andrew Munn wrote:
> > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/
> > QuickFIX/J Support: http://www.quickfixj.org/support/
> >
> >
> >
> > It looks like the validation boolean on message.fromString is ignored. I
> > have to validate a 2nd time to see the exception.
> >
> > sessionDictionary = new DataDictionary("c:\\java\\FIX50SP2.modified.xml");
> > appDictionary = new DataDictionary("c:\\java\\FIXT11.xml");
> > // message.fromString: validation=true
> > message.fromString(m4, sessionDictionary, appDictionary, true); //passes
> > appDictionary.validate(message); // fails
> >
> >
> >
> > _______________________________________________
> > Quickfixj-users mailing list
> > Qui...@li...
> > https://lists.sourceforge.net/lists/listinfo/quickfixj-users
>
|