Details
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);
}
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);
}
Activity
- All
- Comments
- History
- Activity
- Subversion Commits
- Builds
This is not fixed in 1.4.0.