Uploaded image for project: 'QuickFIX/J'
  1. QuickFIX/J
  2. QFJ-426

Message header will not validate when containing 'Hop' group

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Default
    • Resolution: Fixed
    • Affects Version/s: 1.3.3
    • Fix Version/s: 1.5.0
    • Component/s: Engine
    • Labels:
      None
    • Environment:
      Solaris 8-10, Java 1.6.0_11

      Description

      Our application started generating the following error after upgrading from QFJ 1.3.1 to 1.3.3

      27 Mar 2009 15:24:04,115: FIX.4.4:MyComp->TheirComp: Error during message processing
      java.lang.NullPointerException
      at quickfix.DataDictionary.iterate(DataDictionary.java:609)
      at quickfix.DataDictionary.validate(DataDictionary.java:579)
      at quickfix.DataDictionary.validate(DataDictionary.java:545)
      at quickfix.Session.next(Session.java:716)
      at quickfix.mina.ThreadPerSessionEventHandlingStrategy$MessageDispatchingThread.run(ThreadPerSessionEventHandlingStrategy.java:75)

      I have compared the DataDictionary.java source code and discovered the following snippet has been added to the iterate()...

      for (List<Group> groups : map.getGroups().values()) {
      for (Group group : groups)

      { iterate(group, msgType, dd.getGroup(msgType, group.getFieldTag()).getDataDictionary()); }

      }

      The exception apparently occurred when recursively calling the iterate method; I assume because 'dd.getGroup(...) is returning null.

      Based upon the stack trace, the header was being processed. The only group in the header is for the 'Hop' component. The error does not occur when the 'Hop' group is omitted.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              thannon Tommy Hannon
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: