Marcono1234 created MAPREDUCE-7333: -------------------------------------- Summary: SecureShuffleUtils.toHex(byte[]) creates malformed hex string Key: MAPREDUCE-7333 URL: https://issues.apache.org/jira/browse/MAPREDUCE-7333 Project: Hadoop Map/Reduce Issue Type: Bug Affects Versions: 3.2.2 Reporter: Marcono1234
{{org.apache.hadoop.mapreduce.security.SecureShuffleUtils.toHex(byte[])}} creates malformed hex strings: {code} for (byte b : ba) { ps.printf("%x", b); } {code} The pattern {{"%x"}} would for bytes < 16 only have on hex char and for example both {{1, 0}} and {{16}} would have the result {{"10"}}. A correct (and more efficient) implementation would be: {code} public static String toHex(byte[] ba) { StringBuilder sb = new StringBuilder(ba.length * 2); for (byte b : ba) { int unsignedB = b & 0xFF; if (unsignedB < 16) { sb.append('0'); } sb.append(Integer.toHexString(unsignedB)); } return sb.toString(); } {code} -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: mapreduce-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: mapreduce-issues-h...@hadoop.apache.org