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

On checksum errors, include information on the problem section of the stream

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Default
    • Resolution: Fixed
    • Affects Version/s: 1.2.1, 1.3.0, 1.3.1
    • Fix Version/s: 1.3.2
    • Component/s: Engine
    • Labels:
      None

      Description

      If there is a checksum error an error is logged, but it does not include the problem section of stream. This would useful in determining if it was a garble, a problem with the counterparty's software or whatever.

      A patch we've tried is to add the following snippet to FIXMessageDecoder.handleError(ByteBuffer, int, String, boolean), right before the "if(disconnect))":

      int mark = buffer.position();
      try {
      StringBuilder sb = new StringBuilder(text);
      sb.append("\nBuffer debug info: ").append(getBufferDebugInfo(buffer));
      buffer.position(0);
      sb.append("\nBuffer contents: ");
      try

      { final byte[] array = new byte[buffer.limit()]; for(int i = 0; i < array.length; ++i) array[i] = buffer.get(); sb.append(new String(array, "ISO-8859-1")); }

      catch (Exception e)

      { sb.append(buffer.getHexDump()); }

      text = sb.toString();
      } finally

      { buffer.position(mark); }

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              ryarran Rhys Yarranton
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: