[QFJ-65] Wrong error reported on parse Created: 06/Sep/06 Updated: 12/Apr/07 Resolved: 11/Feb/07 |
|
Status: | Closed |
Project: | QuickFIX/J |
Component/s: | Engine |
Affects Version/s: | 1.0.3 |
Fix Version/s: | 1.1.0 |
Type: | Bug | Priority: | Default |
Reporter: | André Malenfant | Assignee: | Steve Bate |
Resolution: | Fixed | Votes: | 0 |
Labels: | None |
Description |
Whenever a parsing error occurs, an InvalidMessage exception is thrown but is never reported and the processing continues to the validation method which may or not find a validation error. If, for instance, a LENGTH type field is missing for a specific DATA field, the error reported is: Invalid message: Actual body length=x, Expected body length=x whereas the real error is that the LENGTH field is missing. form the fromString method of the Message class: try { parseHeader(dd); parseBody(dd); parseTrailer(dd); }catch (InvalidMessage e) { isValidStructure = false; }if (doValidation) { validate(messageData); } |
Comments |
Comment by John McKeown [ 05/Dec/06 ] |
This issue can be easily reproduced by parsing a message which has the MsgType field in the wrong place (i.e. not the third field). |
Comment by Steve Bate [ 11/Feb/07 ] |
The message parser will now report the correct error. I've added a unit test for the specific case of a missing data field length. |