quickfixj
quickfixj copied to clipboard
`MessageFactory` returns null - `create(FIX5.0SP2, AE, 457)` instead of an instance of `NoUnderlyingSecurityAltId` group
Describe the bug
quickfix.fix50sp2.MessageFactory.create(FIX5.0SP2, AE, 457) returns null instead of an instance of NoUnderlyingSecurityAltId group
To Reproduce Create a simple Junit to call this method with the above mentioned parameters.
Expected behavior
Add case "457" under case "AE" (L617) in the nested switch statements to make sure we return the correct instance because it's valid group for quickfix.fix50sp2.TradeCaptureReport.class i.e. it is clearly defined in FIX50SP2.xml
i.e. (TradeCaptureReport.UnderlyingInstrument.UndSecAltIDGrp.NoUnderlyingSecurityAltID)
system information:
- OS: [Windows]
- Java version [JDK17]
- QFJ Version [2.3.1]
Additional context This issue doesn't seem to exist in fix44 or earlier. Possibly an issue with MessageFactory.xsl and how FIX50SP2 behaves due to the diff in session and app level messages.
Use case: we store fix messages in json format and while converting them back to TradeCaptureReport instance, we use MessageFactory.create(String beginString, String messageType, int correspondingFieldId) to create internal groups. The above bug, returns null and we currently handle it by just skipping the population of this group as it's not of any use to us currently.