[ https://issues.apache.org/jira/browse/MAPREDUCE-7333?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17313412#comment-17313412 ]
Peter Bacsko commented on MAPREDUCE-7333: ----------------------------------------- Yeah, this was just a quick POC that I copied from Eclipse. Both ideas make sense to me. cc [~aajisaka] [~ahussein] > 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 > Priority: Major > > {{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