[QFJ-517] CLONE -On checksum errors, include information on the problem section of the stream Created: 29/Apr/10  Updated: 29/Apr/10

Status: Open
Project: QuickFIX/J
Component/s: Engine
Affects Version/s: 1.2.1, 1.3.0, 1.3.1
Fix Version/s: 1.3.2

Type: Improvement Priority: Default
Reporter: Rhys Yarranton Assignee: Unassigned
Resolution: Unresolved Votes: 0
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); }

 Comments   
Comment by Rhys Yarranton [ 29/Apr/10 ]

This is not fixed in 1.4.0.

Generated at Sat Nov 23 07:17:08 UTC 2024 using JIRA 7.5.2#75007-sha1:9f5725bb824792b3230a5d8716f0c13e296a3cae.