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

Generated at Sat Nov 23 11:15:07 UTC 2024 using JIRA 7.5.2#75007-sha1:9f5725bb824792b3230a5d8716f0c13e296a3cae.