Details
Description
An Invalid argument exception was thrown from methods invoked in fromApp()
java.lang.IllegalArgumentException: message 8=FIXT.1.1^A9=480^A35=d^A34=7528 ...
at package.removed.ApplicationImpl.fromApp(ApplicationImpl.java:46)
at quickfix.Session.fromCallback(Session.java:1361)
at quickfix.Session.verify(Session.java:1314)
at quickfix.Session.verify(Session.java:1390)
at quickfix.Session.next(Session.java:796)
at quickfix.mina.SingleThreadedEventHandlingStrategy$SessionMessageEvent.processMessage(SingleThreadedEventHandlingStrategy.java:107)
at quickfix.mina.SingleThreadedEventHandlingStrategy.block(SingleThreadedEventHandlingStrategy.java:70)
at quickfix.mina.SingleThreadedEventHandlingStrategy$1.run(SingleThreadedEventHandlingStrategy.java:87)
at java.lang.Thread.run(Thread.java:619)
This caused QuickFixJ to think that it never received the message. So on the next message the sequence was out of order:
2011-02-04 07:41:21,737 [QFJ Message Processor] INFO quickfixj.event - FIXT.1.1:IGMM-MD->NDXMD: MsgSeqNum too high, expecting 7528 but received 7529
QuickFixJ then requested the message again.
The Exception was caused by the contents of the message, so on reception of the offending message the same thing happened again.
I believe that the default behaviour should be to reject the message indicating some kind of application failure, or something else other than silently dropping the message which can cause a resend loop.