[QFJ-536] Checksum patch Created: 28/Jun/10 Updated: 15/Nov/12 Resolved: 20/May/11 |
|
Status: | Closed |
Project: | QuickFIX/J |
Component/s: | Engine |
Affects Version/s: | 1.4.0 |
Fix Version/s: | 1.5.1 |
Type: | Bug | Priority: | Major |
Reporter: | SSE | Assignee: | Unassigned |
Resolution: | Fixed | Votes: | 0 |
Labels: | None | ||
Environment: |
All |
Description |
The getGroups has the side effect of modifying i.e creating the empty group inside the message beeing read (with NoXXX field set to 0). The message serialization and checksum/length calculation inside quickfixj are not consistently treated for NoXXX=0 fields Fixed: checksum/length calculation in QuickFIX/J for groups having NoXXX=0, in case that the library and getGroups+forwarding is used in a public call. int calculateLength() {
Iterator<Map.Entry<Integer, List<Group>>> iterator = groups.entrySet().iterator(); } return result; (Internal reference: IC_57786) |
Comments |
Comment by Steve Bate [ 20/Mar/11 ] |
These changes introduced a bug since the calculateString method was not also changed. It was possible to have a message string with a tag=0 but the length of the message is zero. This was causing unit and acceptance tests to fail. Zero length groups are now not serialized into message strings as of SVN rev #1002. However, I'm not sure this is what we really want. The QuickFIX C++ project expects zero length groups to be serialized so, assuming they had a good reason for implementing that behavior, we may be causing some subtle problem with these changes. |