[Quickfix-developers] FIX.IntConvertor.convert() throwing exception
Brought to you by:
orenmnero
From: Rick L. <ric...@gm...> - 2008-06-24 12:30:09
|
Greetings, I have finally tracked down a bug that has been giving me problems for some time. I'm getting an exception thrown in the FIX.IntConvertor.convert(string) function, and I can't seem to figure out why. It always happens at the same place: in an Incremental Refresh message, I extract the NoMDEntries group. I then try to extract the "price level" of the update (int field 1023), and here is where I get the exception. Here is the stack trace: External component has thrown an exception. at _CxxThrowException(Void* , _s__ThrowInfo* ) at FIX.IntConvertor.convert(basic_string<char\,std::char_traits<char>\,std::allocator<char> >* value) at QuickFix.Group.getField(IntField field) at MDPDataServer.MDPMarketDataProvider.ProcessMarketDataIncrementalRefresh and here's the line of code that's causing the exception: // message is a QuickFix.Message object constructed from the string below int numEntries = message.getInt(268); for (uint i = 0; i < numEntries; i++) { QuickFix44.MarketDataIncrementalRefresh.NoMDEntries group = new QuickFix44.MarketDataIncrementalRefresh.NoMDEntries(); message.getGroup(i + 1, group); int priceLevel = group.getField(new IntField(1023)).getValue(); // exception occurs here ... What's strange is that I process millions of market data messages every day and this only happens maybe 2 or 3 times a week -- my first thought was that this was a FAST decoding issue (when I'm building the text representation of the FIX message before QuickFix is even used), but at such a low probability of occurrence, I can't imagine this is a decoding issue. Here is the message that is throwing the exception; I've highlighted the 1023 entries, and they all look fine to me -- any thoughts? (also, to make it more readable/email friendly, I removed the stop-bits and replaced them with the | character). Thanks, Rick 8=FIX.4.2 | 9=1961 | 35=X | 34=1304872 | 49=CME | 52=20080624115930866 | 75=20080624 | 268=22 | 279=1 | *1023=2* | 269=0 | 270=45 | 271=85 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801005 | 83=13568 | 279=1 | *1023=1* | 269=0 | 270=94 | 271=293 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801101 | 83=38117 | 279=1 | *1023=1* | 269=0 | 270=112.5 | 271=293 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801109 | 83=35245 | 279=1 | *1023=2* | 269=1 | 270=9551 | 271=1743 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=803001 | 83=231922 | 279=1 | *1023=1* | 269=1 | 270=9631 | 271=1134 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=803900 | 83=278737 | 279=1 | *1023=2* | 269=1 | 270=9631.5 | 271=12656 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=803900 | 83=278738 | 279=1 | *1023=1* | 269=1 | 270=9536 | 271=1175 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=806001 | 83=204449 | 279=1 | *1023=2* | 269=1 | 270=9536.5 | 271=13774 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=806001 | 83=204450 | 279=1 | *1023=1* | 269=1 | 270=9612 | 271=332 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=806901 | 83=422681 | 279=1 | *1023=2* | 269=1 | 270=9612.5 | 271=17576 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=806901 | 83=422682 | 279=1 | *1023=2* | 269=1 | 270=9592 | 271=30035 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=809901 | 83=312614 | 279=1 | *1023=2* | 269=0 | 270=17 | 271=47 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=800915 | 83=20839 | 279=1 | *1023=1* | 269=0 | 270=43 | 271=58 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801105 | 83=10961 | 279=2 | *1023=1* | 269=1 | 270=44.5 | 271=12 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801105 | 83=10962 | 279=1 | *1023=1* | 269=1 | 270=45 | 271=12 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801105 | 83=10963 | 279=0 | *1023=2* | 269=1 | 270=45.5 | 271=216 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801105 | 83=10964 | 279=1 | *1023=1* | 269=0 | 270=60 | 271=58 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801113 | 83=9462 | 279=1 | *1023=2* | 269=0 | 270=-4 | 271=24 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=801208 | 83=3856 | 279=2 | *1023=2* | 269=1 | 270=9495.5 | 271=49 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=803201 | 83=8643 | 279=0 | *1023=2* | 269=1 | 270=9496 | 271=93 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=803201 | 83=8644 | 279=1 | *1023=1* | 269=0 | 270=81 | 271=967 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=800208 | 83=76335 | 279=1 | *1023=2* | 269=0 | 270=80.5 | 271=409 | 273=115930000 | 336=2 | 276=K | 22=8 | 48=800208 | 83=76336 | 1128=8 | 10=233 | |