[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. |