[QFJ-944] Misleading error message when receiving Logon with tag RawData without RawDataLength Created: 13/Mar/18 Updated: 16/Mar/18 Resolved: 16/Mar/18 |
|
Status: | Resolved |
Project: | QuickFIX/J |
Component/s: | Engine, Metadata/Specs |
Affects Version/s: | 1.6.4 |
Fix Version/s: | 2.0.1 |
Type: | Improvement | Priority: | Default |
Reporter: | Nikolai Kulakov | Assignee: | Christoph John |
Resolution: | Fixed | Votes: | 0 |
Labels: | None | ||
Environment: |
Real connection to GDAX (Coinbase) exchange. |
Description |
I encountered a problem that after receiving a Logon message from the GDAX cryptocurrency exchange, the connection is breaking down with only one strange explaining string in event log messages: 1) I think, the FIX engine should check the previous tag presence before getting it, and in the case of absence, do extracting as with usual string. |
Comments |
Comment by Christoph John [ 13/Mar/18 ] |
Hmm, tag 96 can contain any data, e.g. also SOH character. Not knowing the length of that tag can lead to parsing errors, especially on multi byte charsets. |
Comment by Nikolai Kulakov [ 13/Mar/18 ] |
No, they do not mention. |
Comment by Christoph John [ 14/Mar/18 ] |
I think improving the error message is the only thing we can do at the moment. There is a workaround as you mentioned (changing the field to STRING). You could also set UseDataDictionary=N as long as GDAX does not use repeating groups. Thanks, |
Comment by Christoph John [ 14/Mar/18 ] |
What about this? throw new InvalidMessage("Did not find length field " + e.field + " required to parse data field " + tag + " in " + messageData); |
Comment by Nikolai Kulakov [ 14/Mar/18 ] |
Yes, it is much clearer. Thanks! |
Comment by Christoph John [ 14/Mar/18 ] |
Comment by Christoph John [ 16/Mar/18 ] |
BTW, I have asked GDAX support if they can add the RawDataLength tag for better FIX compliance and they agreed to do so in the future. Chris. |