[QFJ-608] Out of Order in repeating group if first tag of repeating group is not set (even if it is not a mandatory field) Created: 10/Jun/11  Updated: 15/Nov/12  Resolved: 11/Jun/11

Status: Closed
Project: QuickFIX/J
Component/s: Engine
Affects Version/s: 1.5.0
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: John Assignee: Unassigned
Resolution: Not a bug Votes: 0
Labels: None
Environment:

JDK 1.6_24



 Description   

In quickfix.Message, parseGroup(...) the code looks for the first field in the group as defined by the dictionary. If it is not defined, then a "REPEATING_GROUP_FIELDS_OUT_OF_ORDER" exception is triggered.

I made a TradeCaptureReport message. This type of message has a "Symbol" field in the "Instrument" component.
I used the "NoLegs" repeating group and the message parsing on the server failed because I did not put the "LegSymbol" field in the group.

My workaround is to put the "LegSymbol" field for each group. It makes the message bigger with no added value.

If there is a reason to make this check, could somebody explain ?

Thanks,
John



 Comments   
Comment by Steve Bate [ 11/Jun/11 ]

The InstrumentLeg component can be used either in a repeating group or not (see the AssignmentReport and FinancingDetails messages, for example). Theoretically, it could also be used in a repeating where it's not the first element of the group but I don't know of any examples of that.

When the InstrumentGroup component is the first element of a repeating group then the first element of the component is conditionally required. It's how FIX messages determine the start of each group in a repeating group. See the FIX specifications for more details.

Comment by Steve Bate [ 11/Jun/11 ]

Just curious, but I'm wondering why you have a multileg TradeCaptureReport where each leg has the same symbol as the top-level instrument. The typical scenario would be something like a multileg option strategy trade where the top-level instrument is the underlying instrument symbol and the leg symbols are the option symbols for each leg.

Comment by John [ 14/Jun/11 ]

Hi,
Thanks for the information, I missed the part where the spec said that it looked for the first field of a repeating group to determine the start. I confess that I have not read everything :-[.

For our use case, NoSides contains a trade and NoLegs contains the information for the quote that the client selected for the trade (so we are using a field that was not meant for that).

Why ? Because the dialog is internal to the firm and well specified/documented. So we decided not to add our own fields, having a structure, that suited well our needs, already present.

I completely lack the financial knowledge but I thought that we could set the "root" symbol for the full capture or one by "leg". Either the one or the other since I do not see what the "main" symbol is worth if each leg declares a different symbol.

Comment by John [ 14/Jun/11 ]

Your question made look closely the message fields and we might use the "UndInstrmtGrp" which is I think exactly what we are doing (How could I not see it !!!).

Thanks again

Generated at Wed May 01 05:27:32 UTC 2024 using JIRA 7.5.2#75007-sha1:9f5725bb824792b3230a5d8716f0c13e296a3cae.