<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-priority:99;
mso-style-link:"Balloon Text Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:"Tahoma","sans-serif";}
span.BalloonTextChar
{mso-style-name:"Balloon Text Char";
mso-style-priority:99;
mso-style-link:"Balloon Text";
font-family:"Tahoma","sans-serif";}
span.apple-tab-span
{mso-style-name:apple-tab-span;}
span.mark
{mso-style-name:mark;}
span.EmailStyle21
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:#1F497D;}
span.EmailStyle22
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:#1F497D;}
span.EmailStyle23
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Hi <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I’ve identified another issue today with the deserialization of messages. The scenario is that I have added to a TradeCaptureReport message Legs and NestedParties. In the legs group I have no fields but two nested groups this results in a Null value exception on Line 510 of Message.cs. The root cause being that it expects field 600 to be present as this is set as the delim value, but this value is not a required field and has not been included hence a group is not created and thus the null value exception.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Regards <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Tim<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Tim Bailey [mailto:tim.bailey@ateofinance.com] <br><b>Sent:</b> 02 August 2012 16:32<br><b>To:</b> 'Mailing list for QuickFIX/n'; 'KAPIL KUMAR LALWANI'<br><b>Subject:</b> RE: {{Quickfixn}} TradeCaptureReportRequest<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Hi<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#4F81BD'>Today I’ve also found that I’m having Trade Capture Report messages being rejected. For what appears to be similar reasons. In this case it is as <a href="javascript:expand_component('PositionAmountData');"><b><span style='color:#4F81BD;text-decoration:none'>PositionAmountData</span></b></a> is not present (753) which according to the 4.4 DD and <a href="http://fixprotocol.org/FIXimate3.0/"><span style='color:#4F81BD'>http://fixprotocol.org/FIXimate3.0/</span></a> is not required.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#4F81BD'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#4F81BD'>In the DD for FIX 4.4 we have the following relevant sections.<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:blue'> <</span><span style='font-size:10.0pt;font-family:"Courier New";color:#A31515'>component</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'> </span><span style='font-size:10.0pt;font-family:"Courier New";color:red'>name</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>=</span><span style='font-size:10.0pt;font-family:"Courier New"'>"<span style='color:blue'>PositionAmountData</span>"<span style='color:blue'> </span><span style='color:red'>required</span><span style='color:blue'>=</span>"<span style='color:blue'>N</span>"<span style='color:blue'> /><o:p></o:p></span></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:blue'> <</span><span style='font-size:10.0pt;font-family:"Courier New";color:#A31515'>component</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'> </span><span style='font-size:10.0pt;font-family:"Courier New";color:red'>name</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>=</span><span style='font-size:10.0pt;font-family:"Courier New"'>"<span style='color:blue'>PositionAmountData</span>"<span style='color:blue'>><o:p></o:p></span></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:blue'> <</span><span style='font-size:10.0pt;font-family:"Courier New";color:#A31515'>group</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'> </span><span style='font-size:10.0pt;font-family:"Courier New";color:red'>name</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>=</span><span style='font-size:10.0pt;font-family:"Courier New"'>"<span style='color:blue'>NoPosAmt</span>"<span style='color:blue'> </span><span style='color:red'>required</span><span style='color:blue'>=</span>"<span style='color:blue'>Y</span>"<span style='color:blue'>><o:p></o:p></span></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:blue'> <</span><span style='font-size:10.0pt;font-family:"Courier New";color:#A31515'>field</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'> </span><span style='font-size:10.0pt;font-family:"Courier New";color:red'>name</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>=</span><span style='font-size:10.0pt;font-family:"Courier New"'>"<span style='color:blue'>PosAmtType</span>"<span style='color:blue'> </span><span style='color:red'>required</span><span style='color:blue'>=</span>"<span style='color:blue'>Y</span>"<span style='color:blue'> /><o:p></o:p></span></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:blue'> <</span><span style='font-size:10.0pt;font-family:"Courier New";color:#A31515'>field</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'> </span><span style='font-size:10.0pt;font-family:"Courier New";color:red'>name</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>=</span><span style='font-size:10.0pt;font-family:"Courier New"'>"<span style='color:blue'>PosAmt</span>"<span style='color:blue'> </span><span style='color:red'>required</span><span style='color:blue'>=</span>"<span style='color:blue'>Y</span>"<span style='color:blue'> /><o:p></o:p></span></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:blue'> </</span><span style='font-size:10.0pt;font-family:"Courier New";color:#A31515'>group</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:blue'> </</span><span style='font-size:10.0pt;font-family:"Courier New";color:#A31515'>component</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>></span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#4F81BD'>Looking in the source code I see that the following have been determined as required for message type AE: 571, 570, 55, 32, 31, 75, 753, 60, 768 and 552. <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#4F81BD'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#4F81BD'>The code raising the exception is:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'> //DataDictionary.cs 152<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'> <span style='color:blue'>foreach</span> (<span style='color:blue'>int</span> field <span style='color:blue'>in</span> Messages[msgType].ReqFields)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'> {<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'> <span style='color:blue'>if</span> (!message.IsSetField(field))<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'> <span style='color:blue'>throw</span> <span style='color:blue'>new</span> <span style='color:#2B91AF'>RequiredTagMissing</span>(field);<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'> }<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#4F81BD'>My assumption having looked at the code is that this is occuring as this is a null group i.e. in the message I sent out I did not add any PositionAmountData and therefore when the code looks to see if the fields are present it returns false. <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#4F81BD'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#4F81BD'>The code below that I included above has:<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'> <span style='color:green'>/** FIXME TODO group stuff<o:p></o:p></span></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:green'> foreach (DDGroup grp in _messages[msgType].Groups.Values)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:green'> if (_messages[msgType].ReqFields.Contains(grp.Field))<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:green'> ReqFieldsSetInGroups(grp, fields);<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:green'> */<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#4F81BD'>My presumption is that I should be setting some PositionAmountData to get round this, but how exactly should I be doing that?<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#4F81BD'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#4F81BD'>Thanks<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#4F81BD'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#4F81BD'>Tim <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> <a href="mailto:quickfixn-bounces@lists.quickfixn.com">quickfixn-bounces@lists.quickfixn.com</a> <a href="mailto:[mailto:quickfixn-bounces@lists.quickfixn.com]">[mailto:quickfixn-bounces@lists.quickfixn.com]</a> <b>On Behalf Of </b>Tim Bailey<br><b>Sent:</b> 31 July 2012 08:49<br><b>To:</b> 'KAPIL KUMAR LALWANI'; 'Mailing list for QuickFIX/n'<br><b>Subject:</b> Re: {{Quickfixn}} TradeCaptureReportRequest<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I’m using version 1.2.0.0, should this help.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> <a href="mailto:quickfixn-bounces@lists.quickfixn.com">quickfixn-bounces@lists.quickfixn.com</a> <a href="mailto:[mailto:quickfixn-bounces@lists.quickfixn.com]">[mailto:quickfixn-bounces@lists.quickfixn.com]</a> <b>On Behalf Of </b>KAPIL KUMAR LALWANI<br><b>Sent:</b> 31 July 2012 05:47<br><b>To:</b> Mailing list for QuickFIX/n<br><b>Subject:</b> Re: {{Quickfixn}} TradeCaptureReportRequest<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal style='background:white'><span style='font-family:"Arial","sans-serif";color:black'>Hi All,<o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span class=apple-tab-span><span style='font-family:"Arial","sans-serif";color:black'> </span></span><span style='font-family:"Arial","sans-serif";color:black'>I am also working with Quickfix/n. In the same message "<span class=mark>TradeCaptureReportRequest</span>", I am not attaching the symbol with the message, but its working fine for me. So I don't think so that its a issue.<o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-family:"Arial","sans-serif";color:black'> <o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-family:"Arial","sans-serif";color:black'><br><br>Kapil Kumar Lalwani<br>“Enjoy the WORK you do, Do the BEST you can.” <o:p></o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='font-family:"Arial","sans-serif";color:black'><o:p> </o:p></span></p></div><div><div><div><div class=MsoNormal align=center style='text-align:center;background:white'><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:black'><hr size=1 width="100%" align=center></span></div><p class=MsoNormal style='background:white'><b><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:black'>From:</span></b><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:black'> Mike <span class=mark>Gatny</span> <<a href="mailto:mgatny@connamara.com">mgatny@connamara.com</a>><br><b>To:</b> Mailing list for QuickFIX/n <<a href="mailto:quickfixn@lists.quickfixn.com">quickfixn@lists.quickfixn.com</a>> <br><b>Sent:</b> Monday, 30 July 2012 10:40 PM<br><b>Subject:</b> Re: {{Quickfixn}} <span class=mark>TradeCaptureReportRequest</span></span><span style='color:black'><o:p></o:p></span></p></div><p class=MsoNormal style='background:white'><span style='color:black'><o:p> </o:p></span></p><div id=yiv790281688><p class=MsoNormal style='background:white'><span style='color:black'>Tim,<o:p></o:p></span></p><div><p class=MsoNormal style='background:white'><span style='color:black'><o:p> </o:p></span></p></div><div><p class=MsoNormal style='background:white'><span style='color:black'>Thanks for the log. I'm thinking Grant's analysis (required field in a component that is not required by the message) is correct. In other words, this is a legitimate bug.<o:p></o:p></span></p><div><div><p class=MsoNormal style='background:white'><span style='color:black'><o:p> </o:p></span></p></div><p class=MsoNormal style='background:white'><span style='color:black'>-- <br></span><span style='font-family:"Arial","sans-serif";color:black'>Mike <span class=mark>Gatny</span><br><span class=mark>Connamara</span> Systems, <span class=mark>LLC</span></span><span style='color:black'><o:p></o:p></span></p></div></div></div><p class=MsoNormal style='margin-bottom:12.0pt;background:white'><span style='color:black'><br>_______________________________________________<br>Quickfixn mailing list<br><a href="mailto:Quickfixn@lists.quickfixn.com">Quickfixn@lists.quickfixn.com</a><br><a href="http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com" target="_blank">http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com</a><o:p></o:p></span></p></div></div></div></div></body></html>