Description
The attached patch addresses few issues.
- We need only (3*this.length) capacity in ByteBuffer and not (3*this.bytes.length).
- Do not calculate (offset + length) at every iteration.
- No test is required at every iteration to add space (' ') before every byte other than the first one. Uses sb.substring(1) instead.
- Finally and most importantly (the original issue of this report), downcast the promoted int (the parameter to Integer.toHexString()) to byte range.
Without #4, the byte array {54,125,64, -1, -45} is transformed to "36 7d 40 ffffffff ffffffd3" instead of "36 7d 40 ff d3".