Brandon Berg created ZOOKEEPER-2763:
---------------------------------------
Summary: Utils.toCsvBuffer() omits leading 0 for bytes < 0x10
Key: ZOOKEEPER-2763
URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2763
Project: ZooKeeper
Issue Type: Bug
Components: jute
Affects Versions: 3.5.2
Reporter: Brandon Berg
Priority: Minor
org.apache.jute.Utils.toCsvBuffer(), which converts a byte array to a string
containing the hex representation of that byte array, omits the leading zero
for any byte less than 0x10, due to its use of Integer.toHexString, which has
the same behavior.
https://github.com/apache/zookeeper/blob/master/src/java/main/org/apache/jute/Utils.java#L234
One consequence of this is that the hex strings printed by
ClientCnxn.Packet.toString(), used in the debug logging for
ClientCnxn.readResponse(), cannot be parsed to determine the result of a
Zookeeper request from client debug logs.
Utils.toXmlBuffer() appears to have the same issue.
A simple proposed fix:
{code}
for(int idx = 0; idx < barr.length; idx++) {
// Insert the following three lines
if (barr[idx] < 0x10) {
sb.append('0');
}
sb.append(Integer.toHexString(barr[idx]));
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)